使用DotNetZip从zip中提取特定文件夹

我一直在搜索示例,但似乎无法找到涉及提取某个文件夹的DotNetZip场景。 我正在尝试从.zip文件中提取名为“CSS”的文件夹,它是.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文件夹及其所有子目录和文件。

这对我有用。

  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); } } } 

试试这个:

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

我认为这是最好的方法。