4

例を探しましたが、特定のフォルダーの抽出を含む DotNetZip シナリオが見つからないようです。「CSS」というフォルダーを .zip ファイルから抽出しようとしていますが、これは .zip ファイル内の最上位フォルダーです。これは私がこれまでに持っているコードです:

using (ZipFile zip1 = ZipFile.Read(savedFileName))
{
    var selection = from e in zip1.Entries
                    where System.IO.Path.GetFileName(e.FileName).StartsWith("CSS/")
                    select e;

    foreach (var e in selection)
    e.Extract(_contentFolder);                
}

現在の選択内容は何も取得していないため、css フォルダーとそのすべてのサブディレクトリとファイルを抽出するように、それを書き換える助けを借りることができます。

4

2 に答える 2

9

これは私にとってはうまくいきました。

          public void ExtractFiles(string fileName, string outputDirectory)
          {
                using (ZipFile zip1 = ZipFile.Read(fileName))
                {
                    var selection = (from e in zip1.Entries
                                     where (e.FileName).StartsWith("CSS/")
                                     select e);


                    Directory.CreateDirectory(outputDirectory);

                    foreach (var e in selection)
                    {                            
                        e.Extract(outputDirectory);        
                    }
                }
         }
于 2011-01-24T23:54:21.473 に答える
2

これを試して:

var entries = zip.SelectEntries("*", @"folder1\folder2\");
foreach (var file in entries)
{/* extract here */}

これが最善のアプローチだと思います。

于 2013-09-27T10:14:47.933 に答える