一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

C# 使用原生 System.IO.Compression 實(shí)現(xiàn) zip 的壓縮與解壓

 長(zhǎng)江黃鶴 2023-08-16 發(fā)布于湖北

zip 是一個(gè)非常常見(jiàn)的壓縮包格式,本文主要用于說(shuō)明如何使用代碼 文件或文件夾壓縮為 zip壓縮包及其解壓操作,
我們采用的是 微軟官方的實(shí)現(xiàn),所以也不需要安裝第三方的組件包。

使用的時(shí)候記得 using System.IO.Compression;

  1. /// <summary>
  2. /// 將指定目錄壓縮為Zip文件
  3. /// </summary>
  4. /// <param name="folderPath">文件夾地址 D:/1/ </param>
  5. /// <param name="zipPath">zip地址 D:/1.zip </param>
  6. public static void CompressDirectoryZip(string folderPath, string zipPath)
  7. {
  8.      DirectoryInfo directoryInfo = new(zipPath);
  9.  
  10.      if (directoryInfo.Parent != null)
  11.      {
  12.          directoryInfo = directoryInfo.Parent;
  13.      }
  14.  
  15.      if (!directoryInfo.Exists)
  16.      {
  17.          directoryInfo.Create();
  18.      }
  19.  
  20.      ZipFile.CreateFromDirectory(folderPath, zipPath, CompressionLevel.Optimal, false);
  21. }

其中 CompressionLevel 是個(gè)枚舉,支持下面四種類(lèi)型

枚舉注解
Optimal0壓縮操作應(yīng)以最佳方式平衡壓縮速度和輸出大小。
Fastest1即使結(jié)果文件未可選擇性地壓縮,壓縮操作也應(yīng)盡快完成。
NoCompression2該文件不應(yīng)執(zhí)行壓縮。
SmallestSize3壓縮操作應(yīng)盡可能小地創(chuàng)建輸出,即使該操作需要更長(zhǎng)的時(shí)間才能完成。

我方法這里直接固定了采用 CompressionLevel.Optimal,大家可以根據(jù)個(gè)人需求自行調(diào)整。

  1. /// <summary>
  2. /// 將指定文件壓縮為Zip文件
  3. /// </summary>
  4. /// <param name="filePath">文件地址 D:/1.txt </param>
  5. /// <param name="zipPath">zip地址 D:/1.zip </param>
  6. public static void CompressFileZip(string filePath, string zipPath)
  7. {
  8.  
  9.      FileInfo fileInfo = new FileInfo(filePath);
  10.      string dirPath = fileInfo.DirectoryName?.Replace("\\", "/") + "/";
  11.      string tempPath = dirPath + Guid.NewGuid() + "_temp/";
  12.      if (!Directory.Exists(tempPath))
  13.      {
  14.          Directory.CreateDirectory(tempPath);
  15.      }
  16.      fileInfo.CopyTo(tempPath + fileInfo.Name);
  17.      CompressDirectoryZip(tempPath, zipPath);
  18.      DirectoryInfo directory = new(path);
  19.      if (directory.Exists)
  20.      {
  21.          //將文件夾屬性設(shè)置為普通,如:只讀文件夾設(shè)置為普通
  22.          directory.Attributes = FileAttributes.Normal;
  23.  
  24.          directory.Delete(true);
  25.      }
  26. }

壓縮單個(gè)文件的邏輯其實(shí)就是先將我們要壓縮的文件復(fù)制到一個(gè)臨時(shí)目錄,然后對(duì)臨時(shí)目錄執(zhí)行了壓縮動(dòng)作,壓縮完成之后又刪除了臨時(shí)目錄。

  1. /// <summary>
  2. /// 解壓Zip文件到指定目錄
  3. /// </summary>
  4. /// <param name="zipPath">zip地址 D:/1.zip</param>
  5. /// <param name="folderPath">文件夾地址 D:/1/</param>
  6. public static void DecompressZip(string zipPath, string folderPath)
  7. {
  8.      DirectoryInfo directoryInfo = new(folderPath);
  9.  
  10.      if (!directoryInfo.Exists)
  11.      {
  12.          directoryInfo.Create();
  13.      }
  14.  
  15.      ZipFile.ExtractToDirectory(zipPath, folderPath);
  16. }

至此 C# 使用原生 System.IO.Compression 實(shí)現(xiàn) zip 的壓縮與解壓 就講解完了,有任何不明白的,可以在文章下面評(píng)論或者私信我,歡迎大家積極的討論交流,有興趣的朋友可以關(guān)注我目前在維護(hù)的一個(gè) .NET 基礎(chǔ)框架項(xiàng)目,項(xiàng)目地址如下

https://github.com/berkerdong/NetEngine.git

https:///berkerdong/NetEngine.git

到此這篇關(guān)于C# 使用原生 System.IO.Compression 實(shí)現(xiàn) zip 的壓縮與解壓的文章就介紹到這了,更多相關(guān)C# 實(shí)現(xiàn) zip 的壓縮與解壓內(nèi)容請(qǐng)搜索我們以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持我們!

本文標(biāo)題: C# 使用原生 System.IO.Compression 實(shí)現(xiàn) zip 的壓縮與解壓
本文地址: http://www./ruanjian/csharp/525619.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多

    激情亚洲内射一区二区三区| 99免费人成看国产片| 久久精品色妇熟妇丰满人妻91| 免费啪视频免费欧美亚洲| 麻豆tv传媒在线观看| 超薄丝袜足一区二区三区| 妻子的新妈妈中文字幕| 在线观看欧美视频一区| 午夜精品在线视频一区| 日本精品啪啪一区二区三区| 欧美日韩成人在线一区| 亚洲一区二区精品久久av| 国产精品涩涩成人一区二区三区| 欧美精品久久99九九| 一本久道久久综合中文字幕| 美女被后入福利在线观看| 十八禁日本一区二区三区| 黄色国产自拍在线观看| 国产免费黄片一区二区| 精品少妇人妻av免费看| 国产黑人一区二区三区| 国产一级特黄在线观看| 日本办公室三级在线观看| 中文字幕中文字幕在线十八区| 人妻一区二区三区多毛女| 熟女中文字幕一区二区三区| 日韩夫妻午夜性生活视频| 久久黄片免费播放大全 | 日韩特级黄片免费观看| 一区二区欧美另类稀缺| 精品一区二区三区不卡少妇av| 欧美精品亚洲精品一区| 一区二区三区日韩中文| 久久综合日韩精品免费观看| 欧美日韩综合综合久久久| 日本不卡一区视频欧美| 99久久精品午夜一区二| 国产成人免费高潮激情电| 91插插插外国一区二区| 亚洲中文字幕乱码亚洲| 九九热在线免费在线观看|