0

我正在尝试DotNetZipLib-DevKit-v1.9在我的 MVC3 项目中使用将文件提取到特定文件夹。

我想要的是——如何在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 方法,但它并没有帮助

如何添加多个条目?

4

1 回答 1

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);
}
于 2013-01-02T12:14:37.563 回答