如何使用C#为Web应用程序中的用户创建普通的zip文件?

时间:2015-06-11 21:50:36

标签: c# web-applications outputstream dotnetzip sharpcompress

我有以下代码来创建可下载的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存档时,我无法打开文件。尝试打开文件时,会出现一个额外的窗口,如下所示: enter image description here

我尝试了两个命名空间:Ionic.Zip和SharpCompress,问题出现在任何一个中。 任何帮助,将不胜感激。 TKS

1 个答案:

答案 0 :(得分:2)

您的代码是正确的,但请记住XLSX文件格式是一个zip文件。

发生了什么,是WinRAR将其视为存档而只是解压缩它。

您可以配置WinRAR并告诉它使用Excel打开xlxs文件。

转到 选项 - > 设置 - > 查看器并为*.xlsx选择Excel作为关联计划 http://acritum.com/software/manuals/winrar/html/helpviewersettings.htm