Zip.Save(Response.OutputStream)错误

时间:2017-03-04 11:17:14

标签: c# zipfile iconic

您好我已经下载了Zip下载所需的dll文件。我已经成功地在服务器目录上下载了多个pdf文件,我为zip文件编写了多个文件的代码,并为客户端提供了下载,但是从n个pdf文件开始,最后一个' n'下面的路径中缺少数字文件 C:\ Program Files(x86)\ Common Files \ microsoft shared \ DevServer \ 11.0 并且找不到这个未找到的文件的例外 zip.Save(Response.OutputStream) - 代码行。任何类型的帮助表示赞赏。

protected void Btn_DownloadZip_Click(object sender, System.EventArgs e)
    {
        try
        {
            string[] filePaths = Directory.GetFiles(Server.MapPath("~/EStatement/"));
            List<ListItem> files = new List<ListItem>();
            foreach (string filePath in filePaths)
            {
                files.Add(new ListItem(Path.GetFileName(filePath), filePath));
            }//Collecting names of file from specified Path

            using (ZipFile zip = new ZipFile())
            {
                zip.AlternateEncodingUsage = ZipOption.AsNecessary;
                zip.AddDirectoryByName("Zip_Statements");

                for(int i=0;i<files.Count;i++)
                {
                    string FPtoAdd = files[i].Text;
                    zip.AddFile(FPtoAdd, "Zip_Statements");
                }

                Response.Clear();
                Response.BufferOutput = false;
                string ZipName = string.Format("Zip_{0}", DateTime.Now.ToString("yyyy-MM-dd-HHmmss"));
                Response.ContentType = "application/zip";
                Response.AddHeader("content-disposition", "attachment; filename=" + ZipName);
                zip.Save(Response.OutputStream); //ERROR LINE
                Response.End();

          }

        }
        catch (Exception Ex)
        {
            ExceptionLogging.SendErrorToText(Ex);
        }
    }

1 个答案:

答案 0 :(得分:0)

得到了输出.Mini错误是我没有在上面的代码中提供下载路径。这就是为什么它会抛出异常。

string FPtoAdd = Server.MapPath(“〜/ EStatement /”)+“”+ files [i] .Text;

这件事对我有用。谢谢