Я загружаю файлы из контейнера Azure blob. Мой код работает нормально, если я создаю только один каталог, но если я попытался создать несколько каталогов, zip-файл будет поврежден.
var users = new List<long>();
users .Add(1);
users .Add(2);
users .Add(3);
foreach (var user in users)
using (var zipOutputStream = new ZipOutputStream(Response.OutputStream))
{
foreach (CloudBlockBlob item in container.ListBlobs(prefix: blobNamePrefix, useFlatBlobListing: true))
{
zipOutputStream.SetLevel(0);
var blob = container.GetBlockBlobReference(item.Name);
var entry = new ZipEntry(item.Name);
zipOutputStream.PutNextEntry(entry);
blob.DownloadToStream(zipOutputStream);
}
zipOutputStream.Finish();
zipOutputStream.Close();
}
Response.BufferOutput = false;
Response.AddHeader("Content-Disposition", "attachment; filename=" + "zipFileName.zip");
Response.ContentType = "application/octet-stream";
Response.Flush();
Response.End();
}
если я использую только одного пользователя, тогда он создает новую папку внутри zip-файла и добавьте в него весь пользовательский файл blob. но сработал для нескольких.