Сохранение сжатых файлов в файловой системе

#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. Моя вина, я поставил «;» в конце строки с использованием