使用DotNetZip库压缩列表文件的内容

时间:2012-10-16 17:37:42

标签: c#

我有一个.lst文件,其中包含必须压缩的各种数据的路径。路径可以是可执行文件的直接路径,也可以是日志文件的路径,也可以包含通配符,如-c:\ abc * .exe。如何将所有这些文件压缩成单个zip文件?感谢

DotNetZip Library是@:http://dotnetzip.codeplex.com/wikipage?title = CS-examples& referTitle = Examples

.lst文件的内容:

C:\日志\ abc.log

C:\日志\ def.log

C:\ *平.BAT

C:\平* .EXE

这就是我的尝试:

using (ZipFile zip = new ZipFile())     
{                      
   StreamReader file = File.OpenText("C:\\pingman\\pingzipA.lst");
   string read = String.Empty;

   while ((read = file.ReadLine()) != null)                  
   {                                      
      zip.AddSelectedFiles(read, true);    
      zip.Save("c:\\update.zip");       
   }

   file.Close();   
}

3 个答案:

答案 0 :(得分:1)

这是一个包含TON示例的链接,看看如何使用示例来处理你想要做的事情。甚至还有一个使用Wild-Cards的例子

DontNetZip Library Site with Examples

答案 1 :(得分:1)

尝试类似:

 while ((read = file.ReadLine()) != null)                  
 {              
   if (read.Contains("*"))                        
   {
       zip.AddSelectedFiles(read, true);    
   }
   else
   {
       zip.AddFile(read);
   }
 }
 zip.Save("c:\\update.zip");       

答案 2 :(得分:0)

让它发挥作用。

if (read.Contains("*"))
                    {
                        int i = read.IndexOf("*");
                        string path = read.Substring(0, i--);
                        string doc = read.Substring(i+1);
                        zip.AddSelectedFiles(doc, @path, true);
                    }
                    else
                    {
                        zip.AddFile(read);
                    }