使用 DotNetZip 仅从 zip 中提取 XML 文件

Posted

技术标签:

【中文标题】使用 DotNetZip 仅从 zip 中提取 XML 文件【英文标题】:Extract only XML files from a zip using DotNetZip 【发布时间】:2012-09-10 05:33:12 【问题描述】:

我想提取存档中的所有 XML 文件,我正在使用 DotNetZip 提取文件。

在 DotNetZip 的文档中,这是一个示例:

using (ZipFile zip = ZipFile.Read(zipArchiveName))

  zip.ExtractSelectedEntries("name = *.xml  and  mtime > 2009-01-15");

这是我的方法:

private void processButton_Click(object sender, EventArgs e)

    string uniquePath = string.Format(@"C:\0", Guid.NewGuid());
    System.IO.Directory.CreateDirectory(uniquePath);
    using (ZipFile zip = ZipFile.Read(textBox1.Text))
    
        zip.ExtractSelectedEntries("name = *.xml");
    

但它什么也没提取。如何使用 DotNetZip 提取所有 xml 文件,谢谢您的帮助。

【问题讨论】:

【参考方案1】:

设置uniquePath为当前目录,

string uniquePath = string.Format(@"C:\0", Guid.NewGuid());
System.IO.Directory.CreateDirectory(uniquePath);
using (ZipFile zip = ZipFile.Read(textBox1.Text))
    
        System.IO.Directory.SetCurrentDirectory(uniquePath);
        zip.ExtractSelectedEntries("name = *.xml",,ExtractExistingFileAction.OverwriteSilently);
    

或者使用,

var collections=zip.SelectEntries("name=*.xml");
foreach (var t in collections )

 t.Extract(uniquePath,ExtractExistingFileAction.OverwriteSilently);
  

【讨论】:

@AVD 我需要将特定类型指定为*.jpg*.png。如何将其添加到收藏夹中?

以上是关于使用 DotNetZip 仅从 zip 中提取 XML 文件的主要内容,如果未能解决你的问题,请参考以下文章

dotnetzip 创建空的损坏文件

如何在 asp classic 中使用 ionic zip 或 dot net zip

C# .NET 使用第三方类库DotNetZip解压/压缩Zip文件

C# .NET 使用DotNetZip开源类库 处理 压缩/解压 Zip 处理乱码情况

防止 DotNetZip 创建额外的文件夹

DotNetZip 异常错误状态(无效文字/长度代码)