Чтение содержимого файлов RAR с помощью C#

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

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

6 ответов


низкоуровневый lib для работы с 7z.dll (поддерживает RAR архивы, incliding мульти-часть, работает с .net потоков):

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

и более высокого уровня lib на основе первого:

SevenZipSharp


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

                    }

Chilkat Рар библиотека

Более конкретную: ссылке


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


другая возможность использует в том числе исполняемый файл командной строки rar в качестве ressource приложения и вызвать его через систему.Диагностика.Процесс.

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


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

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