C# 用c语言创建Zip#

C# 用c语言创建Zip#,c#,asp.net,zip,C#,Asp.net,Zip,我真想知道为什么我创建了一个zip文件,刚下载完就无法打开,因为它坏了 这就是我实际使用的代码 string url = ((LinkButton)sender).Tag; var downloadFileName = string.Format(((LinkButton)sender).ID + ".zip"); System.IO.DirectoryInfo di = new System.IO.DirectoryInfo("C://inetp

我真想知道为什么我创建了一个zip文件,刚下载完就无法打开,因为它坏了

这就是我实际使用的代码

        string url = ((LinkButton)sender).Tag;
        var downloadFileName = string.Format(((LinkButton)sender).ID + ".zip");
        System.IO.DirectoryInfo di = new System.IO.DirectoryInfo("C://inetpub//wwwroot//Files//Wireframes//" + url);

        using (ZipFile zip = new ZipFile())
        {
            zip.AddEntry("C://inetpub//wwwroot//Files//Wireframes//" + url, zip.Name);
            zip.AddDirectory("C://inetpub//wwwroot//Files//Wireframes//" + url);
            zip.Save(downloadFileName);
        }


        Response.ContentType = "application/zip";
        Response.AddHeader("Content-Disposition", "filename=" + downloadFileName);

另外,我直接添加所有目录及其文件。

您没有发送实际数据

Response.ContentType = "application/zip";
Response.AddHeader("Content-Disposition", "filename=" + downloadFileName);
Response.TransmitFile(downloadFileName);
Response.End();

仅供参考,您的字符串格式不起任何作用。您的uri中混合斜杠是怎么回事?(“//”和“\\”)?我的字符串格式正在创建文件名.zip,但实际上不需要
string.format
来完成。您应该使用
Path.Combine
。是否确实将文件数据作为响应发送?我只看到一个标题,上面写着找不到文件,就好像zip.save不起作用一样。但是这是一个很好的路径。您可能希望在调用TransmitFile()时传递文件的完整路径,谢谢。不过它正在下载文件夹中。我可以添加一个标题来选择您要将下载的文件保存在哪里吗?从服务器端,您无法知道将下载的文件放在客户端计算机的何处。他们不能用这种对话框选择要将其放在哪里吗?