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

4

我在网上搜索了一些例子,但似乎找不到涉及提取特定文件夹的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文件夹及其所有子目录和文件。
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);        
                    }
                }
         }

2

试试这个:

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

我认为这是最好的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接