我有一種方法可以使用DotNetZip壓縮一個或多個文件,並且它一直在正常工作。我今天第一次收到一個錯誤,它似乎與檔案的總大小有關。使用相同的60mb .tiff圖像,我會添加一些額外的副本,測試,重複。它運行良好,直到大約添加了10個圖像,然後,當我使用WinRar打開Zip文件時,我會得到「意外的存檔結束」錯誤。以這種方式進行測試,我相信我已經排除了與我的代碼或文件相關的問題(正在損壞或出現問題)。代碼沒有錯誤,只有WinRar。當我打開Zip文件時,只有一個文件顯示大小爲「0」。因此,似乎正在達到某種尺寸限制,並且不允許創建存檔。我只是不知道它是什麼限制。這裏是我的代碼,如果有幫助的話:使用DotNetZip創建Zip文件時出錯:意外的存檔結束
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ContentType = "application/zip";
HttpContext.Current.Response.AddHeader("content-disposition", "filename=" + "MyFileName" + DateTime.Now.ToString("MMddyyyy") + ".zip");
using (var zip = new Ionic.Zip.ZipFile())
{
zip.MaxOutputSegmentSize = 819200; // I tried adding this and it did not fix the problem
foreach (var file in files)
{
zip.AddFile(file.FileLocation, file.ZipFileDirectory).FileName =
(!string.IsNullOrEmpty(file.ZipFileDirectory) && (file.ZipFileDirectory != @"\")) ?
string.Format(@"{0}\{1}", file.ZipFileDirectory, file.FileName) :
file.FileName;
}
zip.Save(HttpContext.Current.Response.OutputStream);
}
如果直接將zip保存到文件(不使用'HttpContext.Current.Response'),是否也會發生同樣的情況? – svick 2012-02-27 17:38:23