壓縮包製作也是很多專案中需要用到的功能。比如有大量的檔案(假設有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 解壓縮包(單個檔案解壓縮)上面的兩個方法在引用了dll後,可以直接使用。/// /// 解壓縮包(單個檔案解壓縮)
///
/// 壓縮檔案
/// 解壓縮檔案
/// 壓縮演算法列舉
/// 壓縮成功標誌
public static bool unzipfile(string zipfilename, string unzipfilename, zipenum zipenum)
destfile.close();
zipfile.close();
break;
default: break;
} }
catch
return flag;
} #endregion
看到這裡,相信讀者有疑問了,如果我想讓多個檔案壓縮到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...