ZipFile 类中有一个 ExtractSelectedEntries 方法。这是方法签名。
public void ExtractSelectedEntries(string selectionCriteria, string directoryPathInArchive, string extractDirectory, ExtractExistingFileAction extractExistingFile)
因此,在您的程序中,您可以通过提供 selectionCriteria 来简单地提取指定的文件。
public void ExtractFileToDirectory(string zipFileName, string outputDirectory)
{
ZipFile zip = ZipFile.Read(zipFileName);
Directory.CreateDirectory(outputDirectory);
zip.ExtractSelectedEntries("name = *.doc", "document\", outputDirectory, ExtractExistingFileAction.OverwriteSilently);
}
您可以将条件与连词 AND 或 OR 结合使用。对 selectionCriteria 使用类似“name = *.txt AND size >= 100k”的字符串检索名称以 .txt 结尾且未压缩大小大于或等于 100 KB 的条目。
这是一些标准样本
标准(检索到的文件)
name != *.xls(扩展名不是 .xls 的任何文件)
name = *.mp3(任何扩展名为 .mp3 的文件)
*.mp3(同上,任何扩展名为 .mp3 的文件)
attributes = A(属性包含存档位的所有文件)
attributes != H(所有属性不包括隐藏位的文件)
mtime > 2009-01-01(最后修改时间在 2009 年 1 月 1 日之后的所有文件)
大小 > 2gb(所有未压缩大小大于 2gb 的文件)
如需更多参考,您应该单独阅读 API 文档和库。