Я пытаюсь использовать SevenZipSharp или / и библиотеку Unrar в C # WinForms .NET 3.5. У меня есть эта проблема с несколькими RAR архивами, которые имеют разные имена, например:
Если я укажу Unrar или SevenZipSharp на неправильный архив, он распакует этот конкретный архив и оставит остальные не распакованными. Поэтому я должен указать правильный (если я не делаю что-то не так).
Какой лучший способ проверить это? На данный момент я проверяю, есть ли в каталоге более одного .rar файла, тогда если да, то проверяю 01.rar. Если есть только один и .rar и пара r01, то я получаю .rar, но это кажется немного неправильным.
Есть ли способ заставить SevenZip или Unrar фактически распаковать весь пакет multi rar, просто указав на любой файл .rar? или .001?
MadBoy
EDIT:
Я пытался использовать следующий код, чтобы получить информацию, предложенную в одном ответе, но она не дает обещанную информацию. extr.ArchiveFileData возвращает 0 для zip и 32 для любого предоставленного rar, будь то rar или r01.
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());
}
}