DPM20 Ответов: 1

Мое приложение использует это ionic.zip библиотека для архивирования файла. Использование datatables и каждого datatable создаст файл excel и загрузит их как один файл excel.


Мое приложение использует Ionic.Zip библиотека для архивирования файла. Использование DataTables и каждого DataTable создаст файл excel и загрузит их как один файл excel.

Но когда я загружаю файл через windows, я не могу открыть zip-файл, и он показывает недопустимую ошибку. Но с помощью WinZip я могу это сделать. Может ли кто-нибудь из Вас посоветовать, почему происходит эта странная вещь,

Что я уже пробовал:

использование (ZipFile zip = новый ZipFile())
{
Потоке MemoryStream потоке MemoryStream = новая потоке MemoryStream();
foreach (KeyValuePair & lt;string, DataTable & gt; doc in attachmentColl)
{
использование (ExcelPackage objExcelPackage = new ExcelPackage())
{
memoryStream = новый MemoryStream();
ExcelWorksheet objWorksheet = objExcelPackage.Рабочая тетрадь.Рабочий лист.Добавить (док.ключ);
objWorksheet.Ячейки["А1"].LoadFromDataTable(док.Значение, правда);
застежка-молния.AddEntry (doc. Key +". xlsx", objExcelPackage.GetAsByteArray());
}
}
Ответ.Четкий();
Ответ.BufferOutput = false;
строка zipName = строка.Формат ("Reports.zip");
Ответ.AppendHeader ("content-disposition", "attachment; filename=" + zipName);
Ответ.ContentType = " application/x-zip-compressed";
молния.Сохранить(Ответ.Выходной поток);
Свойство HttpContext.Тока.ApplicationInstance.CompleteRequest();
}

1 Ответов

Рейтинг:
2

OriginalGriff

Если вы можете прочитать его с помощью WinZip, но не открыть непосредственно в Windows, то вполне возможно, что созданный ZIP-файл является более поздней версией, чем поддерживает ваш вариант Windows: не все ZIP-файлы имеют одинаковый формат, и некоторые системы имеют проблемы с более высоким сжатием.
Попробуйте изменить Свойство SetCompression[^] значение к более низкому значению и посмотрите, поможет ли это.


DPM20

Спасибо за быстрый возврат.

Пробовал с установкой уровня сжатия, но не повезло!!
молния.CompressionLevel = Ионные.Библиотека zlib.CompressionLevel.Уровень 0;