#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, может подойдет.
Комментариев нет:
Отправить комментарий