我是否可以使用Dot Net Zip列出特定目录中文件的所有名称?例如,我可以指定Directory1并获取File3和File4等
ZipFile
-------
File1
File2
Directory1
File3
File4
Directory2
File5
File6
ZipFile对象只有条目,条目排序和条目文件名...
任何人?,Cheeso? :)
答案 0 :(得分:1)
不,是的。没有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文件中的目录条目视为容器。目录条目和文件条目之间没有容器关系。判断文件条目“属于”特定目录的唯一方法是检查文件条目的全名。如果条目的名称以相关目录的名称开头,则该条目位于目录中。