我正在尝试在 C# WinForms .NET 3.5 中使用 SevenZipSharp 或/和 Unrar 库。我对具有不同命名的多 rar 档案有这个问题,例如:
- .rar, r01, r02, r03 等等(这个很简单)
somefile01.rar, somefile02.rar, somefile03.rar
.001、.002、003 等等。
如果我将 Unrar 或 SevenZipSharp 指向错误的存档,它将解压该特定存档并让其余部分解压。所以我必须指出正确的(除非我做错了什么)。
最好的检查方法是什么?现在我正在检查目录中是否有多个 .rar 文件,如果有,我检查 01.rar。如果只有一个 .rar 和几个 r01 ,那么我会得到 .rar ,但这似乎有点错误。
有没有办法让 SevenZip 或 Unrar 仅通过指向任何 .rar 文件来实际解压缩整个多 rar 包?或 .001 ?
愤怒的少年
编辑:
我尝试使用以下代码来获取一个答案中建议的信息,但它未能提供承诺的信息。extr.ArchiveFileData 对于 zip 返回 0,对于任何提供的 rar(无论是 rar 还是 r01)返回 32。
using (SevenZipExtractor extr = new SevenZipExtractor(fileName)) {
foreach (var var in extr.ArchiveProperties) {
string attributes = var.Name;
object test = var.Value;
if (test == null) {
test = "THIS";
}
MessageBox.Show(attributes.ToString(), test.ToString());
}
foreach (var var in extr.ArchiveFileData) {
MessageBox.Show(var.Attributes.ToString());
}
}