本文提供支援多檔案、多資料夾混合壓縮的完整方案,修正了網路流傳版本的 Bug,並增加重載方法,支援中文路徑。
// 壓縮:兩個檔案 + 一個資料夾
FileInfo[] files = {
new FileInfo(Path.Combine(folder, "file2.PPT")),
new FileInfo(Path.Combine(folder, "file3.doc"))
};
GZip.Compress(files, new string[] { Path.Combine(folder, "img") }, folder, folder, "myzip2.zip");
// 解壓縮
GZip.Decompress(folder, Path.Combine(folder, "newfolder"), "myzip2.zip");
壓縮檔內部結構為自訂格式,非標準 ZIP/RAR,故需配套解壓程式:
0,/file2.PPT,2009-2-5 1:52:07,9216 //.....檔案二進位內容...// 1,/file3.doc,2009-2-5 1:14:54,24064 //.....檔案二進位內容...// 2,/img/file4.gif,2009-2-3 0:53:47,729 //.....檔案二進位內容...//
處理流程採用暫存檔中轉,支援完整目錄樹還原。完整原始碼與 VS2008 專案可供下載。