zip.AddFiles()处理目录中不存在的文件只是跳过这些文件并压缩其他文件

时间:2015-02-24 12:00:32

标签: c# asp.net dll webforms ionic

try
  {
  Response.Clear();
  Response.BufferOutput = false;
  string archiveName = String.Format("arch{0}.zip",                                  DateTime.Now.ToString("yyyy-MMM-dd-HHmmss"));
  Response.ContentType = "application/zip";
  Response.AddHeader("content-disposition", "filename=" + archiveName);

    using (ZipFile zip = new ZipFile())
    {                                        
     zip.AddFiles(ListOfPastPapers,"PastPapers");                    
     zip.Save(Response.OutputStream);
     Response.Close();
    }
   }
catch (System.Exception ex1)
 {                 
 }

我使用Ionic.Zip dll压缩图像。我给zip.addfiles()提供了字符串类型的列表和完整的服务器路径,当找不到特定路径上的任何图像时,它会抛出异常。

我该如何处理?

如果图像不存在,我想要的只是跳过该图像并压缩所有其他现有图像。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

File.Exists(string)甚至FileInfo.Exists对您的情况有所帮助。对于不存在的案例,只需跳到下一个迭代。

答案 1 :(得分:0)

在添加文件之前,请检查文件是否存在。

using (ZipFile zip = new ZipFile())
{  

 foreach(var name in ListOfPastPapers)
 {
    if(System.IO.File.Exists(name))
    {
       zip.AddFiles(filePath,"PastPapers");                    
       zip.Save(Response.OutputStream);
       Response.Close();
     }
   }
}