2009-09-23 85 views
1

我使用SharpZipLib建立在.NET 3.5項目目錄的壓縮文件,而我創造這樣的存檔:SharpZipLib只壓縮一些目錄的子目錄

fastZip.CreateZip(Server.MapPath(zipToPath), Server.MapPath(zipFromPath), true, null); 

而且這不會設置文件或文件夾過濾器。

問題是,結果壓縮文件只有該目錄中的一些子目錄,而不是所有的子目錄,比如說我要壓縮的目錄有3個子目錄,生成的壓縮文件只有一個他們。

任何想法爲什麼會發生這種情況?

+0

它缺少哪些文件? – 2009-09-23 21:27:24

+0

更新了問題,使其更加清晰。 – 2009-09-23 21:32:00

回答

1

經過一些調試後,我發現問題 問題的原因是另一個進程在向文件添加文件時訪問創建的zip文件,這導致SharpZipLib進程終止並拋出異常, zip文件只有一些文件。

欲瞭解更多請閱讀我的How to know which processes is using a file under ASP.NET?問題。

1

幾個候選條件的:

權限 - 由於您使用的使用Server.Mappath(),我假定這是一個網站。在部分信任環境中,網站代碼擁有很少的權限,並且該庫可能會吞噬壓縮過程中發生的任何權限錯誤。

文件名 - 既然你沒有提供任何實例(文件/目錄名的,有沒有辦法來縮小它可能是與文件名長度,文件名中的空間,等等,等等問題