C# - ZIP 壓縮流

C# - ZIP 壓縮流

參考資料

  • https://docs.microsoft.com/en-us/dotnet/api/system.io.compression.ziparchive?view=netframework-4.8
  • https://zh.wikipedia.org/wiki/ZIP%E6%A0%BC%E5%BC%8F

Overview

ZIP流是在NetFramework4.5 引入的目的是爲了可以更好的操做ZIP文件,進行壓縮解壓等操做。與ZIP流相關的幾個類是:java

  1. ZipArchive 表明一個ZIP的壓縮包文件
  2. ZipArchiveEntry 表明ZIP壓縮包中的一個文件
  3. ZipFile 提供了一系列的靜態方法來幫助用戶更方便地操做ZIP文件,相似於File類的做用。

PS: 在使用以前請先添加程序集引用System.IO.CompressionSystem.IO.Compression.FileStreamapi

ZipArchive常見操做

建立一個ZIP文件

using (FileStream fs = new FileStream("myZip.zip", FileMode.Create))
{
    //打開壓縮包
    using (ZipArchive zipArchive = new ZipArchive(fs, ZipArchiveMode.Create))
    {
        //建立一個條目
        ZipArchiveEntry entry = zipArchive.CreateEntry("HelloWorld.txt");
        //在條目中寫入內容
        using (StreamWriter writer = new StreamWriter(entry.Open(), Encoding.Default))
        {
            writer.Write("I am 魯迅認識的那隻猹! Hello World");
        }
    }
}

向現有的ZIP壓縮包中添加文件

using (FileStream fs = new FileStream("myZip.zip", FileMode.Open))
{
    //打開壓縮包,Mode 爲Update模式
    using (ZipArchive zipArchive = new ZipArchive(fs, ZipArchiveMode.Update))
    {
        //建立一個條目
        ZipArchiveEntry entry = zipArchive.CreateEntry("AppendFile.txt");
        //在條目中寫入內容
        using (StreamWriter writer = new StreamWriter(entry.Open(), Encoding.Default))
        {
            writer.Write("這是追加的內容!");
        }
    }
}

解壓ZIP壓縮包

using (FileStream fs = new FileStream("myZip.zip", FileMode.Open))
{
    //打開壓縮包,Mode 爲Update模式
    using (ZipArchive zipArchive = new ZipArchive(fs, ZipArchiveMode.Update))
    {
        //建立一個用來存放解壓後的文件的目錄
        Directory.CreateDirectory("myZip");
        //將全部的條目解壓出來
        foreach (var item in zipArchive.Entries)
        {
            //解壓文件
            item.ExtractToFile(@"myZip\" + item.Name);
        }
    }
}

ZipFile

方法 解釋
FileZip.CreateFromDirectory 從一個目錄建立ZIP壓縮文件
FileZip.ExtractToDirectory 將ZIP壓縮文件解壓到目錄中
FileZip.Open 打開一個ZIP壓縮文件
FileZip.OpenRead 打開一個讀取模式的ZIP壓縮文件

ZipFileExtensions

ZipFileExtensions 爲ZipArchive 和 ZipArchiveEntry 提供了一些更簡便的方法,具體能夠查看官方文檔code

相關文章
相關標籤/搜索