如何使用SharpCompress从7z档案的某个文件夹中读取文件路径?

时间:2019-05-08 13:03:17

标签: c# .net regex 7zip sharpcompress

我希望能够传递文件夹名称作为参数,并从7z存档中的该文件夹获取文件路径列表。

所以,我的函数调用看起来像这样:

List<string> filePaths = ReadFilePathsFrom(archivePath, folderName);

我想出的解决方案是遍历ReaderFactory的输入键并检查,其中包含指定的folderName和任何类型的文件扩展名。

public List<string> ReadFilePathsFrom(string archivePath, string folderName)
    {
      List<string> filePaths = new List<string>();

      using (Stream stream = File.OpenRead(archivePath))
      {
        var reader = ReaderFactory.Open(stream);
        while (reader.MoveToNextEntry())
        {
          if (Regex.IsMatch(reader.Entry.Key, $@"{folderName}/.*\..*"))
          {
            files.Add(Path.Combine(archivePath, reader.Entry.Key));
          }
        }
      }

      return files;
    }

上面指定的代码可提供所需的结果。但是我想知道,是否有更好的方法来实现这一目标?也许是不用使用正则表达式的更通用的方法?

0 个答案:

没有答案