tft每日頭條

 > 圖文

 > 源代碼壓縮包怎麼運行

源代碼壓縮包怎麼運行

圖文 更新时间:2025-03-11 01:33:34

源代碼壓縮包怎麼運行?Zip 是一個非常常見的壓縮包格式,本文主要用于說明如何使用代碼 将文件或文件夾壓縮為 zip壓縮包及其解壓操作,我們采用的是 微軟官方的實現,所以也不需要安裝第三方的組件包,下面我們就來說一說關于源代碼壓縮包怎麼運行?我們一起去了解并探讨一下這個問題吧!

源代碼壓縮包怎麼運行(C使用原生)1

源代碼壓縮包怎麼運行

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

使用的時候記得 using System.IO.Compression;

/// <summary> /// 将指定目錄壓縮為zip文件 /// </summary> /// <param name="folderPath">文件夾地址 D:/1/ </param> /// <param name="zipPath">zip地址 D:/1.zip </param> public static void CompressDirectoryZip(string folderPath, string zipPath) { DirectoryInfo directoryInfo = new(zipPath); if (directoryInfo.Parent != null) { directoryInfo = directoryInfo.Parent; } if (!directoryInfo.Exists) { directoryInfo.Create(); } ZipFile.CreateFromDirectory(folderPath, zipPath, CompressionLevel.Optimal, false); }

其中 CompressionLevel 是個枚舉,支持下面四種類型

枚舉

注解

Optimal

0

壓縮操作應以最佳方式平衡壓縮速度和輸出大小。

Fastest

1

即使結果文件未可選擇性地壓縮,壓縮操作也應盡快完成。

NoCompression

2

該文件不應執行壓縮。

SmallestSize

3

壓縮操作應盡可能小地創建輸出,即使該操作需要更長的時間才能完成。

我方法這裡直接固定了采用 CompressionLevel.Optimal,大家可以根據個人需求自行調整。

/// <summary> /// 将指定文件壓縮為Zip文件 /// </summary> /// <param name="filePath">文件地址 D:/1.txt </param> /// <param name="zipPath">zip地址 D:/1.zip </param> public static void CompressFileZip(string filePath, string zipPath) { FileInfo fileInfo = new FileInfo(filePath); string dirPath = fileInfo.DirectoryName?.Replace("\\", "/") "/"; string tempPath = dirPath Guid.NewGuid() "_temp/"; if (!Directory.Exists(tempPath)) { Directory.CreateDirectory(tempPath); } fileInfo.CopyTo(tempPath fileInfo.Name); CompressDirectoryZip(tempPath, zipPath); DirectoryInfo directory = new(tempPath); if (directory.Exists) { //将文件夾屬性設置為普通,如:隻讀文件夾設置為普通 directory.Attributes = FileAttributes.Normal; directory.Delete(true); } }

壓縮單個文件的邏輯其實就是先将我們要壓縮的文件複制到一個臨時目錄,然後對臨時目錄執行了壓縮動作,壓縮完成之後又删除了臨時目錄。

/// <summary> /// 解壓Zip文件到指定目錄 /// </summary> /// <param name="zipPath">zip地址 D:/1.zip</param> /// <param name="folderPath">文件夾地址 D:/1/</param> public static void DecompressZip(string zipPath, string folderPath) { DirectoryInfo directoryInfo = new(folderPath); if (!directoryInfo.Exists) { directoryInfo.Create(); } ZipFile.ExtractToDirectory(zipPath, folderPath); }

至此 C# 使用原生 System.IO.Compression 實現 zip 的壓縮與解壓 就講解完了,有任何不明白的,可以在文章下面評論或者私信我,歡迎大家積極地讨論交流

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved