Member 13018216 Ответов: 1

При извлечении файла rar в C# с помощью пакета sharpcompress он показывает исключение как недопустимый заголовок rar:16


Строка filename = @"" + textBox8.Text;
строка ppath = @"" + System.IO.Path.GetDirectoryName(textBox8.Text) + "\\"System.IO.Path.GetFileNameWithoutExtension(textBox8.Text);
System.IO.Directory.CreateDirectory(@"" + ppath);
пробовать
{
var archive = SharpCompress.Архивы.Rar.RarArchive.Открыть(имя файла);
foreach (запись var в архиве.Записи.Где(запись => !запись.IsDirectory))
{
вход.WriteToDirectory(ppath, new ExtractionOptions()
{
});
}
}поймать(исключение бывший)
{
textBox10.Текст = Преобразовать.ToString(ex);
}
}

Что я уже пробовал:

Я использовал Nunrar,SevenZip Extractor,а также многие пакеты, столкнувшись с этой же ошибкой,Но этот файл был извлечен в WinRar и 7zip тоже

Mehdi Gholam

Ваш файл может быть поврежден.

Member 13018216

Но это извлекается в WinRar и 7zip правильно

1 Ответов

Рейтинг:
9

Jochen Arndt

Когда архив может быть распакован с помощью некоторых инструментов (включая официальный), но не другими, он может быть создан с опциями, которые не поддерживаются всеми несжатыми библиотеками, или он находится в формате RAR 5.0, который не поддерживается всеми библиотеками (особенно старыми).

Вы можете сверить заголовок архива с документацией:
Формат архива RAR 5.0[^]

Вы также можете спросить создателя архива об используемом инструменте и опциях.


Member 13018216

Я сжал формат с форматом Rar4,теперь он будет извлекать файлы только не diectories

Jochen Arndt

Возможно, это аналогичная проблема (библиотека не поддерживает каталоги), но RAR4 должен поддерживать каталоги.