Мне нужно извлечь разделенный rar-файл (r00, r01, r02,...) на С#.
Единственное, что я нашел, что может быть полезно, это sevenzipsharp. Я не могу найти пример того, что я пытаюсь сделать.
Кто-то сказал, что «документы доступны по адресу https://archive.codeplex.com/?p=sevenzipsharp", но это не очень помогает, так как я не могу найти там никаких примеров.
Я знаю, что все было бы намного проще, если бы я использовал другой формат сжатия, но я не несу ответственности за создание zip-файлов, так что, к сожалению, это не вариант.
* ОБНОВЛЕНИЕ 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?
* ОБНОВЛЕНИЕ 20 января 2019 г. *
В итоге я использовал решение, представленное здесь: Распаковать архив в C#
Я изменил параметры переключателя, чтобы WinRar работал в фоновом режиме, не открывая никаких окон.
Если кто-то действительно предложит решение моих проблем с SevenZipSharp, я все равно хотел бы знать, так как это более «чистый» код.
See SevenZipTest/Program.cs for simple code examples; SevenZipTestForms is the GUI demo application.
- person MineR   schedule 17.01.2019