C#WinForms.NET3.5でSevenZipSharpまたは/およびUnrarライブラリを使用しようとしています。たとえば、名前が異なるマルチrarアーカイブでこの問題が発生します。
- .rar、r01、r02、r03など(これは簡単です)
somefile01.rar、somefile02.rar、somefile03.rar
.001、.002、003など。
UnrarまたはSevenZipSharpに間違ったアーカイブを指定すると、その特定のアーカイブが解凍され、残りは解凍されたままになります。だから私は正しいものを指さなければなりません(私が何か間違ったことをしているのでない限り)。
それをチェックするための最良の方法は何でしょうか?今のところ、ディレクトリ内に複数の.rarファイルがあるかどうかを確認しています。ある場合は、01.rarを確認します。r01が1つと.rarと2つしかない場合は、.rarを取得しますが、これは少し間違っているようです。
.rarファイルをポイントするだけで、SevenZipまたはUnrarを作成してマルチrarパック全体を実際に解凍する方法はありますか?または.001?
イケナイ人
編集:
次のコードを使用して、1つの回答で提案されている情報を取得しようとしましたが、約束された情報を提供できません。extr.ArchiveFileDataは、zipの場合は0を返し、rarまたはr01のいずれであっても、提供されたrarの場合は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());
}
}