2012-12-14 46 views
0

我試圖在我的MVC3項目中使用DotNetZipLib-DevKit-v1.9將文件提取到特定的文件夾。在DotNetZip的SelectEntries中無法獲取多個條目

我想要的是 - 如何在zip.SelectEntries方法中添加多個條目。

這是我在控制器動作代碼:

public ActionResult ExtractZip(string fileName, HttpPostedFileBase fileData) 
     { 
      string zipToUnpack = @"C:\Users\Public\Pictures\Sample Pictures\images.zip"; 
      string unpackDirectory = System.IO.Path.GetTempPath(); 

      using (ZipFile zip1 = ZipFile.Read(zipToUnpack)) 
      { 
       // here, we extract every entry, but we could extract conditionally 
       // based on entry name, size, date, checkbox status, etc. 
       var collections = zip1.SelectEntries("name=*.jpg;*.jpeg;*.png;*.gif;");//This shows `0` items in collections 

       foreach (var item in collections) 
       { 
        item.Extract(unpackDirectory, ExtractExistingFileAction.OverwriteSilently); 
       } 
      } 
      return Json(true); 
     } 

在這一行var collections = zip1.SelectEntries("name=*.jpg;*.jpeg;*.png;*.gif;");如果我只指定一個擴展,它工作正常

例如: var collections = zip1.SelectEntries("name=*.gif");這工作好

我我也看到SelectEntries方法here,但它並沒有幫助,雖然

如何添加多個條目?

回答

0

最後,我可以回答我自己的問題。

中序選擇我們需要使用OR和選擇多個條目使用下面的代碼多個條目:

var collections = zip1.SelectEntries("(name=*.jpg) OR (name=*.jpeg) OR (name=*.png) OR (name=*.gif)"); 

foreach (var item in collections) 
{ 
    item.Extract(unpackDirectory, ExtractExistingFileAction.OverwriteSilently); 
}