C# 如何使用C为web应用程序中的用户生成普通zip文件?

C# 如何使用C为web应用程序中的用户生成普通zip文件?,c#,web-applications,outputstream,dotnetzip,sharpcompress,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("y

我有以下代码来创建一个工作正常的可下载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,但这两个名称空间中的任何一个都出现了问题。
任何帮助都将不胜感激。tks

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

发生的事情是,WinRAR将其视为一个归档文件,只是将其解压

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

选项->设置->查看器并选择Excel作为
*.xlsx的关联程序

感谢您的评论,请注意,我们无法访问客户!用户以自己的方式打开提供的zip文件。此外,当使用Winrar、Winzip等压缩文件时,用户可以直接打开.Xlsx、docx和其他格式。因此,问题不在于相关程序!事实上,我不知道这些zip文件之间有什么区别。Winrar在使用上述代码时将*.docx、*.XSLX和其他microsoft office文件视为zip文件,而在已经使用Winrar进行压缩时,Winrar将其直接打开。