Мне нужно извлечь сплит rar-файл (r00, r01, r02, ...) в C #.
Единственное, что я нашел полезным, это sevenzipsharp. Хотя я не могу найти пример того, что я пытаюсь сделать.
Кто-то сказал: "Документы доступны на https://archive.codeplex.com/?p=sevenzipsharp",, но это не очень помогает, поскольку я не могу найти там никаких примеров.
Я знаю, что все было бы намного проще, если бы я использовал другой формат сжатия, но я не отвечаю за генерацию zip-файлов, так что, к сожалению, это не вариант.
* ОБНОВЛЕНИЕ 17/17/2019 *
Я пытался:
namespace test
{
class Program
{
static void Main(string[] args)
{
// Toggle between the x86 and x64 bit dll
var path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), Environment.Is64BitProcess ? "x64" : "x86", "7z.dll");
SevenZip.SevenZipBase.SetLibraryPath(path);
using (var file = new SevenZipExtractor(@"F:\ziptest\test.part1.rar"))
{
file.ExtractArchive(@"F:\dav\");
}
}
}
}
Но это вызывает ошибку при вызове «ExtractArchive»:
An unhandled exception of type 'SevenZip.SevenZipArchiveException' occurred in SevenZipSharp.dll
Additional information: Invalid archive: open/read error! Is it encrypted and a wrong password was provided?
* ОБНОВЛЕНИЕ 01/20/2019 *
В итоге я воспользовался решением, предоставленным здесь:
Unrar архив в C #
Я изменил параметры переключателя, чтобы WinRar работал в фоновом режиме, не открывая никаких окон.
Если кто-то найдет решение моих проблем с SevenZipSharp, я все равно хотел бы знать, так как это более «чистый» код.