Ответ 1
Низкий уровень lib для работы с 7z.dll(поддерживает rar-архивы, включая многочастные, работает с потоками .net):
Интерфейс С# (.net) для библиотек архива 7-Zip
И более высокоуровневая библиотека, основанная на первом:
Есть ли способ прочитать содержимое RAR файла (поддержка многостраничного RAR обязательна)?
Я не хочу извлекать содержимое на диск, просто прочитайте его как поток.
Низкий уровень lib для работы с 7z.dll(поддерживает rar-архивы, включая многочастные, работает с потоками .net):
Интерфейс С# (.net) для библиотек архива 7-Zip
И более высокоуровневая библиотека, основанная на первом:
Более конкретно: ссылка
Мой проект unrar, http://nunrar.codeplex.com/, должен быть очень .NETty и иметь поддержку потоковой передачи. Если вам нужно что-то еще, предложите или дайте мне патч.
Установите NUnrar из nuget
RarArchive file = RarArchive.Open("rar file path");//@"C:\test.rar"
foreach (RarArchiveEntry rarFile in file.Entries)
{
string path = "extracted file path";//@"C:\"
rarFile.WriteToDirectory(path);
}
Другая возможность заключается в использовании исполняемого файла командной строки rar в качестве ресурса приложения и вызова его через System.Diagnostics.Process.
Вы можете перенаправить поток ввода/вывода.
Если вы хотите напрямую обращаться к файлам, хранящимся в несжатых файлах rar, тогда этот ответ может быть полезен.
ReScene - это проект воссоздания rar из извлеченных файлов. Для этого вам нужен файл .srr. исходный код доступен. Вы можете захотеть чтобы посмотреть на RarStream.cs.