#c# #.net #file #zip
Вопрос:
Я хочу сохранить несколько файлов в одном Zip-файле на своем диске. Этот Zip-файл создан, но его тип — «Сжатая (заархивированная) папка», и его невозможно открыть. Ошибка: «Windows не может открыть папку. Недопустимый путь к сжатой (заархивированной) папке. Могу ли я каким-то образом сделать его обычным Zip-файлом?
int i = 0; await using var ms = new MemoryStream(); { using var archive = new ZipArchive(ms, ZipArchiveMode.Create, true); { foreach (var s in stepwiseData) { //streamWriter.Write(s); var entry = archive.CreateEntry($"Name {i.ToString()}"); i ; using (BinaryWriter writer = new BinaryWriter(entry.Open())) { writer.Write(s.ToArray()); } } var folder = @"C:Temptest"; var fileName = "TestName.zip"; var fullPath = folder fileName; var bytes = ms.ToArray(); File.WriteAllBytes(fullPath, bytes); } }
Комментарии:
1. Поставьте
var bytes = ms.ToArray();
снаружиusing var archive
блока2. Почему вы используете промежуточный поток памяти вместо записи непосредственно в файловый поток? И почему вы используете
await using
для удаления поток памяти, который, по сути, свободен для удаления?3. Моя вина, я поставил «;» в конце строки с использованием