Чтение содержимого файлов RAR с использованием C # - PullRequest
11 голосов
/ 22 июня 2009

Есть ли способ прочитать содержимое файла RAR (поддержка многофайлового RAR обязательна)?

Я не хочу извлекать содержимое на диск, просто прочитайте его как поток.

Ответы [ 6 ]

13 голосов
/ 22 июня 2009

Низкоуровневая библиотека lib для работы с 7z.dll (поддерживает rar-архивы, включая multi-part, работает с потоками .net):

C # (.net) интерфейс для dll 7-Zip архива

И еще высокоуровневая библиотека на основе первой:

SevenZipSharp

2 голосов
/ 03 июня 2016

Установить 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);

                    }
1 голос
/ 04 февраля 2011

Мой проект unrar, http://nunrar.codeplex.com/, стремится быть очень .NETty и имеет потоковую поддержку. Если вам нужно что-то еще, пожалуйста, предложите или дайте мне патч.

1 голос
/ 22 июня 2009
0 голосов
/ 01 апреля 2011

Если вы хотите получить прямой доступ к файлам, хранящимся в несжатых rar файлах, тогда этот ответ может быть полезен.

ReScene - проект для воссоздания RAR архивы из извлеченных файлов. Вам нужен файл .srr для этого. Исходный код доступен. Вы можете хотеть взглянуть на RarStream.cs .

0 голосов
/ 02 февраля 2011

Другая возможность заключается в использовании исполняемого файла командной строки rar в качестве ресурса приложения и вызове его через System.Diagnostics.Process.

Вы можете перенаправить поток ввода / вывода.

...