Я создаю zip-файл с помощью ZipArchive + FileStream. Когда в zip-файл добавляется новый элемент, я хотел бы сбросить/записать вновь добавленный элемент под поток zip.
Приведенный ниже код не очищает отдельный элемент zip. Весь zip-архив записывается в файл output.zip при удалении FileStream.
var files = Directory.GetFiles("C:\\Temp","*.pdf");
using (var output = new FileStream("c:\\temp\\output.zip", FileMode.Create, FileAccess.Write))
{
using (System.IO.Compression.ZipArchive zip = new ZipArchive(output, ZipArchiveMode.Create, true))
{
foreach (var file in files)
{
using (var internalFile = new FileStream(file, FileMode.Open))
{
var zipItem = zip.CreateEntry(Path.GetFileName(file));
using var entryStream = zipItem.Open();
{
await internalFile.CopyToAsync(entryStream).ConfigureAwait(false);
}
}
await output.FlushAsync();
// after each file flush the output stream.
// expectation at this point, individual zip item will be written to physical file.
// however I don't see the file size changes in windows explorer.
} // put breakpoint here
}
} // The whole output get flush at this point when FileStream is disposed
Подробнее здесь: https://stackoverflow.com/questions/649 ... mmediately
ZipArchive не удаляет zip-архив сразу ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Сохраняйте символические ссылки при создании zip-файла с помощью php ZipArchive.
Anonymous » » в форуме Php - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-