Как сделать нормальный ZIP-файл для пользователей в веб-приложении с использованием C#?

У меня есть следующий код для создания загружаемого ZIP-архива, который отлично работает:

ZipFile zip = new ZipFile();
zip.AlternateEncoding = Encoding.UTF8;
zip.AlternateEncodingUsage = ZipOption.Always;
zip.AddFiles(filePaths, false, ".");
string zipName = String.Format("Files_{0}.zip", DateTime.Now.ToString("yyyy-MMM-dd"));
Response.Clear();
Response.BufferOutput = false;
Response.ContentType = "application/zip";
Response.AddHeader("content-disposition", "attachment; filename=" + zipName);
zip.Save(Response.OutputStream);
Response.End();

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

Я пробовал оба пространства имен: Ionic.Zip и SharpCompress, и проблема появляется в любом из них. любая помощь будет оценена. ТКС

1 ответ

Ваш код правильный, но имейте в виду, что формат файла XLSX - это zip-файл.

Что случилось, так это то, что WinRAR рассматривает его как архив и просто распаковывает его.

Вы можете настроить WinRAR и сказать ему, чтобы открыть xlxs файлы с использованием Excel.

Перейдите в Параметры -> Настройки -> Просмотр и выберите Excel в качестве связанной программы для *.xlsx http://acritum.com/software/manuals/winrar/html/helpviewersettings.htm

Другие вопросы по тегам