Я пытаюсь создать zip-файл, а затем программно добавить 2 новые записи (xml и csv file) в C #. Но мне удалось написать первую запись, и после этого по какой-то причине это приводит к повреждению моего zip-файла (точнее, к отсутствующему или поврежденному заголовку).
Поэтому, когда он пытается открыть уже существующий zip-файл для записи второй записи, выдается исключение.
Исключение:
«System.IO.InvalidDataException» в System.IO.Compression.FileSystem.dll («Конец записи центрального каталога не найден.»)
if (Path.GetExtension(fileName) == ".zip")
{
m_fsOutput = new FileStream(fileName, FileMode.Create);
m_zipFile = new ZipArchive(m_fsOutput, ZipArchiveMode.Create, true);
ZipArchiveEntry CSVentry = m_zipFile.CreateEntry(String.Format(CultureInfo.InvariantCulture, "Test{0}.csv", testCells.ElementAt(0).Test), CompressionLevel.Optimal);
m_fsFileWriter = new StreamWriter(CSVentry.Open());
}
Здесь я инициализирую zip-файл и streamWriter
для первой записи. В основном m_fsFileWriter
- это тип StreamWriter
, и я использую этот объект для записи файла в других местах.