Как сделать нормальный 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