我正在尝试在我的MVC3项目中使用DotNetZipLib-DevKit-v1.9
将文件解压缩到特定文件夹。
我想要的是 - 如何在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 :(得分: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);
}