C 製作Zip壓縮包

2022-02-20 08:09:57 字數 2813 閱讀 8606

壓縮包製作也是很多專案中需要用到的功能。比如有大量的檔案(假設有10000個)需要上傳,1個1個的上傳似乎不太靠譜(靠,那得傳到什麼時候啊?),這時我們可以製作乙個壓縮包zip,直接傳這個檔案到伺服器端,然後在伺服器目錄解壓,釋放裡面的檔案。

這裡我們選用icsharpcode.sharpziplib這個類庫來實現我們的需求。

icsharpcode.sharpziplib提供了兩個壓縮演算法的實現,分別是bzip2(壓縮時間長,壓縮率高)和gzip(壓縮效率高,壓縮率低)。

先定義乙個列舉,用於程式標示是哪個壓縮演算法。

/// /// 壓縮列舉  

///

public enum zipenum

單個檔案的壓縮:

#region 製作壓縮包(單個檔案壓縮)  

/// /// 製作壓縮包(單個檔案壓縮)

///

/// 原檔案

/// 壓縮檔案

/// 壓縮演算法列舉

/// 壓縮成功標誌

public static bool zipfile(string srcfilename, string zipfilename, zipenum zipenum)

} catch

return flag;

} #endregion

單個檔案的解壓縮:

#region 解壓縮包(單個檔案解壓縮)  

/// /// 解壓縮包(單個檔案解壓縮)

///

/// 壓縮檔案

/// 解壓縮檔案

/// 壓縮演算法列舉

/// 壓縮成功標誌

public static bool unzipfile(string zipfilename, string unzipfilename, zipenum zipenum)

destfile.close();

zipfile.close();

break;

default: break;

} }

catch

return flag;

} #endregion

上面的兩個方法在引用了dll後,可以直接使用。

看到這裡,相信讀者有疑問了,如果我想讓多個檔案壓縮到1個zip包裡呢?甚至可以給檔案加密?給zip包加注釋?

好吧,我這裡繼續貼兩個方法,都經過測試,可用。

製作壓縮包:

#region 製作壓縮包(多個檔案壓縮到乙個壓縮包,支援加密、注釋)  

/// /// 製作壓縮包(多個檔案壓縮到乙個壓縮包,支援加密、注釋)

///

/// 壓縮檔案目錄

/// 壓縮包檔名

/// 壓縮級別 1-9

/// 密碼

/// 注釋

public static void zipfiles(string topdirectoryname, string zipedfilename, int compresssionlevel, string password, string comment)

if (!string.isnullorempty(password))

if (!string.isnullorempty(comment))

//迴圈設定目錄下所有的*.jpg檔案(支援子目錄搜尋)

解壓縮包:

#region 解壓縮包(將壓縮包解壓到指定目錄)  

/// /// 解壓縮包(將壓縮包解壓到指定目錄)

///

/// 壓縮包名稱

/// 解壓縮目錄

/// 密碼

public static void unzipfiles(string zipedfilename, string unzipdirectory, string password)

zipentry zipentry;

while ((zipentry = zis.getnextentry()) != null)

if (!string.isnullorempty(filename))

else

} fs.close();

} }

} } #endregion

呼叫時我們可以這麼寫:

zipfileutil.zipfiles(@"

e:\\test\\

", "

e:\\test.zip

", 1, "

admin

", "

this is admin's comment.

");//

製作壓縮包

zipfileutil.unzipfiles("

e:\\test.zip

", "

e:\\guwei4037\\

", "

admin

");//

解壓縮包

PHP生成zip壓縮包

我們將乙個檔案生成乙個壓縮包。path c wamp www log.txt filename test.zip zip new ziparchive zip open filename,ziparchive create 開啟壓縮包 zip addfile path,basename path 向...

破解 zip 壓縮包程式

目錄 位址如下 在當前目錄有三個檔案 目前,zip格式屬於幾種主流的壓縮格式之一,其競爭者包括rar格式以及開放原始碼的7 zip格式。從效能上比較,rar格式較zip格式壓縮率較高,但是它的壓縮時間遠遠高於zip。其破解原理就是遍歷密碼字典的密碼,逐個嘗試解碼,如果密碼複雜字典過大會導致破解效率下...

C 製作CAB壓縮包壓縮解壓類

以下為引用的內容 using system using system.collections.generic using system.text using system.io using system.diagnostics namespace com.imyan.cabhelper set pr...