我希望能够传递文件夹名称作为参数,并从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;
}
上面指定的代码可提供所需的结果。但是我想知道,是否有更好的方法来实现这一目标?也许是不用使用正则表达式的更通用的方法?