TL;博士
该站点主页上给出的示例代码无法编译。如何列出多部分 RAR 文件中的所有卷?
问题定义
我有一个包含许多多部分 RAR 文件的 Windows 10 文件夹。'root' rar 及其部分需要被隔离,然后移动到它们自己的文件夹中。我可以通过创建一个文件夹并检查文件名来手动执行此操作,以便根 rar 和“part01.rar”、“part02.rar”等都在同一个目录中。
当有几十个多部分文件时,手动过程很乏味,所以我正在编写一个 C# 应用程序。到目前为止,我了解到的是,这些多部分 RAR 文件的命名约定不一致,这让我陷入了检查它们的文件名并通过字符串操作推断它们所属的位置的尴尬练习。不酷。
因此,我导入SharpCompress是为了科学准确地获取文件名。在其文档页面上有一个示例,它似乎完全符合我的要求。我已经围绕它包装了一个方法,现在将它作为“我尝试过的”呈现给您。
private static void GetFileNames(FileInfo rarFileInfo)
{
var archive = ArchiveFactory.Open(rarFileInfo.FullName);
foreach (var entry in archive.Entries)
{
if (!entry.IsDirectory)
{
Console.WriteLine(entry.FilePath);
}
}
}
...并注意 VS 生成的红色文本...
它无法编译,因为 'FilePath' 无法解析!我有错误的框架吗?我在 VS2013 下使用 .NET 4.5。理论上,这里应该已经有很多问题了,因为主页上的文档示例没有编译,但没有(我检查过)。
问题:如何使用 SharpCompress 识别与给定 RAR 关联的所有卷,以便开发人员可以使用它们的名称。
注意:我也可以使用 WinRar API 将文件解压到它们自己的目录中,但这不是客户想要的。 稍后我将实际解压缩它们,目的是将所有关联的卷放在它们自己的文件夹中。