У меня есть метод, который архивирует один или несколько файлов с помощью DotNetZip, и он работает правильно.Сегодня я впервые получил сообщение об ошибке, и оно, похоже, связано с общим размером архива.Используя то же изображение размером 60 МБ, я бы добавил несколько дополнительных копий, протестировал, повторил.Он работал нормально до тех пор, пока не было добавлено около 10 изображений, затем, когда я открыл Zip-файл с помощью WinRar, я получил ошибку «Неожиданный конец архива».Тестируя таким образом, я полагаю, что я исключил проблему, связанную с моим кодом или файлами (поврежден или что-то в этом роде).В коде нет ошибок, только WinRar.Когда я открываю Zip-файл, отображается только один файл с размером «0».Таким образом, кажется, что достигнут некоторый предел размера, и он не позволяет создавать архив.Я просто не знаю, какой это предел.Вот мой код, если это поможет:
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);
}