У меня есть эта функция, я использую для сжатия списка файлов из сеанса пользователя, а затем потоковое его в браузер пользователя для загрузки:ошибка «Invalid папка» при сжатии файлов с SharpZipLib
public static void DownloadAllPhotos()
{
HttpContext.Current.Response.AddHeader(
"Content-Disposition", "attachment; filename=Photos.zip");
HttpContext.Current.Response.ContentType = "application/zip";
List<string> photos= new List<string>();
if (HttpContext.Current.Session != null &&
HttpContext.Current.Session["userPhotos"] != null)
{
photos = (List<string>)HttpContext.Current.Session["userPhotos"];
}
using (var zipStream = new
ZipOutputStream(HttpContext.Current.Response.OutputStream))
{
foreach (string photoUrl in photos)
{
byte[] fileBytes = File.ReadAllBytes(photoUrl);
var fileEntry = new ZipEntry(
Path.GetFileName(photoUrl))
{
Size = fileBytes.Length
};
zipStream.PutNextEntry(fileEntry);
zipStream.Write(fileBytes, 0, fileBytes.Length);
}
zipStream.Flush();
zipStream.Close();
// reset session
HttpContext.Current.Session["userPhotos"] = new List<string>();
}
}
Когда у пользователя есть фотограммы в их сеансе, и они нажимают кнопку для вызова этой функции, файлы сжимаются и загрузка начинается в браузере пользователя.
Но когда я пытаюсь открыть сжатый файл, я получаю эту ошибку:
Windows cannot open the folder.
The compressed folder "{Path to my file}" is invalid.
я делаю что-то неправильно, что вызывает эту ошибку?
Каков размер на диске загруженного zip-файла? – cfeduke