0

Dot Net Zip 中是否有我可以用来列出特定目录中所有文件名的方法?例如,我可以指定 Directory1 并获取 File3 和 File4 等

ZipFile
-------

File1
File2
Directory1
     File3
     File4
Directory2
     File5
     File6

ZipFile 对象只有 Entries、Entries Sorted 和 Entries File Names...

有人吗?芝士?:)

4

1 回答 1

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 文件中的目录条目视为容器。目录条目和文件条目之间没有容器关系。判断文件条目是否“属于”特定目录的唯一方法是检查文件条目的全名。如果条目的名称以相关目录的名称开头,则条目在目录“中”。

于 2010-11-08T02:32:27.863 回答