2013-07-25 57 views
2

我使用dotnetzip即時創建一個zip文件,通過mvc將其作爲流返回。從dotnetzip創建的zip文件中提取時出錯 - 「Windows無法完成提取。」

我可以添加已經是流的文件,即即時創建的文件。我還添加從base64字符串創建的文件。

創建和下載壓縮文件是好的,當我打開使用Windows資源管理器(Windows 7或8)的zip文件,我可以看到所有條目按預期。打開從一個MemoryStream創建的文件打開沒有問題,但是當我嘗試打開從一個base64字符串創建的文件,Windows資源管理器返回錯誤

Windows cannot complete the extraction. The destination file could not be created.

,如果我嘗試從Windows中的zip文件拖動文件探險家到另一個文件夾,我得到的錯誤:

enter image description here

如果我使用WinRAR打開同一個zip文件或提取物,打開任何條目我沒有任何問題。

任何想法?我想也許我需要添加一個內容類型的base64字符串或流也許? Dotnetzip似乎並不有一個參數指定的內容類型...

我確信有一個在zip文件或它的任何不加密的條目真實

回答

4

看樣子,你想提取並保存文件名中包含冒號的文件(屏幕截圖中的名稱「附件2 - 25-07-2013 15:27:04.png」)。這是行不通的。您需要確保您的zip文件中的文件名不包含invalid file name characters

+0

謝謝,你是對的。從文件名中刪除冒號解決了這個問題,我完全超越了它... –