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



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

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

.lst 文件的内容 :

c:\log\abc.log

c:\log\def.log

c:\ping*.bat

c:\ping*.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();   
}

尝试如下操作:

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

这是一个链接,其中包含大量示例,看看使用这些示例来执行您正在尝试做的事情.. 甚至还有一个使用通配符的示例

DontNetZip 库网站与示例

让它工作了。

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);
                    }

最新更新