Dot Net Zip 中是否有我可以用来列出特定目录中所有文件名的方法?例如,我可以指定 Directory1 并获取 File3 和 File4 等
ZipFile
-------
File1
File2
Directory1
File3
File4
Directory2
File5
File6
ZipFile 对象只有 Entries、Entries Sorted 和 Entries File Names...
有人吗?芝士?:)
Dot Net Zip 中是否有我可以用来列出特定目录中所有文件名的方法?例如,我可以指定 Directory1 并获取 File3 和 File4 等
ZipFile
-------
File1
File2
Directory1
File3
File4
Directory2
File5
File6
ZipFile 对象只有 Entries、Entries Sorted 和 Entries File Names...
有人吗?芝士?:)
不,是的。没有 EntriesInDirectory 集合。但是,选择“属于”特定目录中的条目是一个简单的字符串比较问题。
在 LINQ 中,它看起来像这样:
var selection = from e in zip.Entries
where e.FileName.StartsWith(directoryName)
select e;
在 for 循环中,它看起来像这样:
var list = new List<ZipEntry>();
foreach (var e in zip.Entries) {
if (e.FileName.StartsWith(directoryName)) {
list.Add(e);
}
}
编辑
您可能需要进行转换以区分大小写。在 Windows 上,大小写在文件名中没有意义。
进一步说明:zip 格式不会将 zip 文件中的目录条目视为容器。目录条目和文件条目之间没有容器关系。判断文件条目是否“属于”特定目录的唯一方法是检查文件条目的全名。如果条目的名称以相关目录的名称开头,则条目在目录“中”。