源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

c#实现metro文件压缩解压示例

  • 时间:2022-06-25 11:33 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:c#实现metro文件压缩解压示例
在1.zip中增加一张新图片
[u]复制代码[/u] 代码如下:
StorageFile jpg = await KnownFolders.PicturesLibrary.GetFileAsync("1.jpg");             StorageFile zip = await KnownFolders.PicturesLibrary.GetFileAsync("1.zip");             //把上面这句改成如下就成了压缩文件             //StorageFile zip = await KnownFolders.PicturesLibrary.CreateFileAsync(jpg.DisplayName+".zip",CreationCollisionOption.ReplaceExisting);                   using (ZipArchive archive = new ZipArchive((await zip.OpenAsync(FileAccessMode.ReadWrite)).AsStream(), ZipArchiveMode.Update))             {                 ZipArchiveEntry readmeEntry = archive.CreateEntry(jpg.Name);                 byte[] buffer = WindowsRuntimeBufferExtensions.ToArray(await FileIO.ReadBufferAsync(jpg));                 using (var writer = readmeEntry.Open())                 {                     await writer.WriteAsync(buffer, 0, buffer.Length);                 }             }
把1.jpg从1.zip中删除
[u]复制代码[/u] 代码如下:
StorageFile zip = await KnownFolders.PicturesLibrary.GetFileAsync("1.zip");             using (ZipArchive archive = new ZipArchive((await zip.OpenAsync(FileAccessMode.ReadWrite)).AsStream(), ZipArchiveMode.Update))             {                 //删除文件                 archive.GetEntry("1.jpg").Delete();             }
导出1.jpg,newFile为要到出的文件
[u]复制代码[/u] 代码如下:
StorageFile zip = await KnownFolders.PicturesLibrary.GetFileAsync("1.zip");             using (ZipArchive archive = new ZipArchive((await zip.OpenAsync(FileAccessMode.ReadWrite)).AsStream(), ZipArchiveMode.Update))             {             ZipArchiveEntry zipArchiveEntry = archive.GetEntry("1.jpg").             using (Stream fileData = zipArchiveEntry.Open())                             {                                 StorageFile newFile = await KnownFolders.PicturesLibrary.CreateFileAsync(zipArchiveEntry.FullName, CreationCollisionOption.ReplaceExisting);                                 using (IRandomAccessStream newFileStream = await newFile.OpenAsync(FileAccessMode.ReadWrite))                                 {                                     using (Stream s = newFileStream.AsStreamForWrite())                                     {                                         await fileData.CopyToAsync(s);                                         await s.FlushAsync();                                     }                                 }                             }       }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部