程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 如何壓縮多個文件/文件夾(GZipStream and C#)(3)

如何壓縮多個文件/文件夾(GZipStream and C#)(3)

編輯:關於C語言

用例:

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)編寫),希望你喜歡.謝謝!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved