0

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

DotNetZip 库是@: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();   
}
4

3 回答 3

1

这是一个链接,其中包含大量示例,请查看使用示例来完成您尝试做的事情。甚至还有一个使用通配符的示例

带有示例的 DontNetZip 库站点

于 2012-10-16T17:55:56.983 回答
1

尝试类似:

 while ((read = file.ReadLine()) != null)                  
 {              
   if (read.Contains("*"))                        
   {
       zip.AddSelectedFiles(read, true);    
   }
   else
   {
       zip.AddFile(read);
   }
 }
 zip.Save("c:\\update.zip");       
于 2012-10-16T19:16:01.987 回答
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);
                    }
于 2012-10-19T14:57:33.973 回答