Страницы

Поиск по вопросам

четверг, 13 февраля 2020 г.

Работа с WinRar в C#

#c_sharp #net #архивация #winrar


Подскажите, как можно работать с WinRar в C#?

Я находил вариант с использованием консольного режима, но может быть есть какая-нибудь
удобная библиотека ? 
    


Ответы

Ответ 1



Поиск rar на nuget.org выдал библиотеку SharpCompress. Согласно документации, поддерживает распаковку rar-архивов (но не упаковку). Подключив пакет, я скомпилировал следующий код: using SharpCompress.Reader; // ... using (var archive = File.OpenRead(@"D:\PathSegments.rar")) using (var reader = ReaderFactory.Open(archive)) { Console.WriteLine("Archive type: " + reader.ArchiveType); while (reader.MoveToNextEntry()) { if (!reader.Entry.IsDirectory) Console.WriteLine( "File: {0} size {1}/{2}", reader.Entry.Key, reader.Entry.CompressedSize, reader.Entry.Size)); } } который выдал: Archive type: Rar File: App.config size 135/187 File: App.xaml.cs size 159/345 File: AspectRatioDecorator.cs size 945/6224 File: Properties\AssemblyInfo.cs size 764/2288 File: PartialSegmentControl.xaml size 192/1079 ... Ещё примеры здесь.

Ответ 2



Формат RAR проприетарный. Алгоритмы распаковки и исходники UnRAR защищены авторскими правами, но доступны для бесплатного использования. Взять можно на RarLab. Упаковку в RAR можно сделать только родным архиватором. А про распаковку уже ответил VladD.

Ответ 3



Сколько не искал, ничего удобного для WinRAR не находил. Зато есть для 7-zip, может подойдет.

Комментариев нет:

Отправить комментарий