用例:
1,壓縮
1 string folder = Path.Combine(Server.MapPath("~"), "TestCompress");
2 FileInfo[] info = { new FileInfo(Path.Combine(folder, "file2.PPT")),
new FileInfo(Path.Combine(folder,"file3.doc")) };
3 GZip.Compress(info, new string[] { Path.Combine(folder, "img") }, folder, folder, "myzip2.zip");
2,解壓
1 string folder = Path.Combine(Server.MapPath("~"), "TestCompress");
2 GZip.Decompress(folder, Path.Combine(folder,"newfolder"), "myzip2.zip");
Code2代碼很長,但是卻很好用,在上面用例中我對兩個文件和一個文件夾壓縮,壓縮後保存 到"myzip2.zip"文件中,這只是其中一個重載的版本,原代碼來源於http://www.vwd-cms.com/Forum/Forums.ASPx?topic=18 ,可惜作者在網上給出的代碼Bug很多,無法正常運行,不過作者的 辛勞還是值得稱贊的.修改後(Code2)已經可以很好的使用了,並增加了壓縮方法的重載.支持多種多個文件/文件夾的壓縮和解壓還原(支持中文).下面簡單介紹下工作原理:讀取多文件,格式化後,按照某種規則保 存到一個文件中(上面用例保存到myzip2.gzip文件中)
----------------------------------------------------
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
//.....格式化後內容...//
----------------------------------------------------
在整個過程中是通過創建一個臨時文件來處理,解壓中也根據上面內容格式來進行.當然由於這種獨特 的格式,是不支持rar/zip來解壓的.
最後,提供代碼和例子(VS2008開發,.Net Framework 3.5(C Sharp)編寫),希望你喜歡.謝謝!