壓縮包制作也是很多項目中需要用到的功能。比如有大量的檔案(假設有10000個)需要上傳,1個1個的上傳似乎不太靠譜(靠,那得傳到什麼時候啊?),這時我們可以制作一個壓縮包zip,直接傳這個檔案到伺服器端,然後在伺服器目錄解壓,釋放裡面的檔案。
這裡我們選用ICSharpCode.SharpZipLib這個類庫來實作我們的需求。
ICSharpCode.SharpZipLib提供了兩個壓縮算法的實作,分别是BZIP2(壓縮時間長,壓縮率高)和GZIP(壓縮效率高,壓縮率低)。
先定義一個枚舉,用于程式标示是哪個壓縮算法。
單個檔案的壓縮:
單個檔案的解壓縮:
上面的兩個方法在引用了dll後,可以直接使用。
看到這裡,相信讀者有疑問了,如果我想讓多個檔案壓縮到1個zip包裡呢?甚至可以給檔案加密?給zip包加注釋?
好吧,我這裡繼續貼兩個方法,都經過測試,可用。
制作壓縮包:
解壓縮包:
調用時我們可以這麼寫:
