亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2022年09月28日 09:05:06   作者:張曉棟  
這篇文章主要介紹了C#?使用原生?System.IO.Compression?實現(xiàn)?zip?的壓縮與解壓,zip?是一個非常常見的壓縮包格式,本文主要用于說明如何使用代碼?文件或文件夾壓縮為?zip壓縮包及其解壓操作,需要的朋友可以參考下

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

使用的時候記得 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 是個枚舉,支持下面四種類型

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

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

/// <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(path);
    if (directory.Exists)
    {
        //將文件夾屬性設置為普通,如:只讀文件夾設置為普通
        directory.Attributes = FileAttributes.Normal;

        directory.Delete(true);
    }
}

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

/// <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 實現(xiàn) zip 的壓縮與解壓 就講解完了,有任何不明白的,可以在文章下面評論或者私信我,歡迎大家積極的討論交流,有興趣的朋友可以關注我目前在維護的一個 .NET 基礎框架項目,項目地址如下

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

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

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

相關文章

  • C#語言主要特性總結(jié)

    C#語言主要特性總結(jié)

    這篇文章主要介紹了C#語言主要特性總結(jié),本文總結(jié)了C#語言的簡單、現(xiàn)代、面向?qū)ο?、類型安全、相互兼容性、可伸縮性和可升級性等幾個主要特點,需要的朋友可以參考下
    2015-02-02
  • 解析美國東部時間與北京時間相互轉(zhuǎn)換的實現(xiàn)代碼

    解析美國東部時間與北京時間相互轉(zhuǎn)換的實現(xiàn)代碼

    本篇文章是對美國東部時間與北京時間相互轉(zhuǎn)換的實現(xiàn)代碼進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • c# WPF中CheckBox樣式的使用總結(jié)

    c# WPF中CheckBox樣式的使用總結(jié)

    這篇文章主要介紹了c# WPF中CheckBox樣式的使用總結(jié),幫助大家更好的理解和學習使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C#基于FTP協(xié)議的簡易軟件自動升級程序

    C#基于FTP協(xié)議的簡易軟件自動升級程序

    這篇文章主要為大家詳細介紹了C#基于FTP協(xié)議的簡易軟件自動升級程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • C#基于OLEDB獲取Excel文件表結(jié)構(gòu)信息的方法

    C#基于OLEDB獲取Excel文件表結(jié)構(gòu)信息的方法

    這篇文章主要介紹了C#基于OLEDB獲取Excel文件表結(jié)構(gòu)信息的方法,結(jié)合實例形式分析了OLEDB的調(diào)用及Excel的相關操作技巧,需要的朋友可以參考下
    2017-05-05
  • C#傳值方式實現(xiàn)不同程序窗體間通信實例

    C#傳值方式實現(xiàn)不同程序窗體間通信實例

    Form2構(gòu)造函數(shù)中接收一個string類型參數(shù),即Form1中選中行的文本,將Form2的TextBox控件的Text設置為該string,即完成了Form1向Form2的傳值
    2013-12-12
  • Unity制作圖片字體的方法

    Unity制作圖片字體的方法

    這篇文章主要為大家詳細介紹了Unity制作圖片字體的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • C#實現(xiàn)桶排序算法的示例代碼

    C#實現(xiàn)桶排序算法的示例代碼

    桶排序是一種快速且高效的排序算法,通過將數(shù)據(jù)分配到有序桶中并分別排序,適合均勻分布數(shù)據(jù),它的時間復雜度為O(n),但不適合數(shù)據(jù)分布極不均勻或數(shù)據(jù)范圍很大的情況,桶排序算法簡單、易實現(xiàn),可調(diào)整桶的大小和數(shù)量以適應不同數(shù)據(jù),感興趣的可以了解一下
    2024-10-10
  • c# Winform同一數(shù)據(jù)源多個控件保持同步

    c# Winform同一數(shù)據(jù)源多個控件保持同步

    通過對控件屬性設置數(shù)據(jù)源綁定,利用Windows數(shù)據(jù)更改通知這一特性,只要訂閱(設定綁定)的控件都能接收到數(shù)據(jù)的變化通知。 通過DataBindings方法實現(xiàn)雙向數(shù)據(jù)綁定
    2021-06-06
  • 讀取圖片像素的具體實例

    讀取圖片像素的具體實例

    C#讀取圖片像素的具體實例,需要的朋友可以參考一下
    2013-06-06

最新評論