0

DotNetZipLib-DevKit-v1.9MVC3プロジェクトで使用して、ファイルを特定のフォルダーに抽出しようとしています。

私が欲しいのは-メソッドに複数のエントリを追加する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;");で、拡張子を1つだけ指定すると、正常に機能します

例: 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 に答える