Страницы

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

Показаны сообщения с ярлыком winrar. Показать все сообщения
Показаны сообщения с ярлыком winrar. Показать все сообщения

четверг, 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, может подойдет.

пятница, 27 декабря 2019 г.

команды WinRAR (SFX-модуля) - есть ли пауза\задержка?

#winrar


Делаю инсталляцию на WinRAR в ней две строки Setup.
Одна на cmd-исполняемый файл.
Вторая на exe-исполняемый файл.
Вторая должна стартовать, когда cmd выполнит все свои скрипты, но WinRar стартует
вторую строку сразу после запуска первой.
Понятно, что можно реализовать запуск exe из cmd-файла, но ради личной любознательности
хотелось бы уточнить - есть ли понятие паузы\задержки на выполнение (аналог консольной
start /wait) в командах SFX WinRar?
    


Ответы

Ответ 1



Боюсь, что никак: Вместо названия приложения укажите имя BAT или CMD-файла, содержащего сценарий обработки содержимого SFX-архива. Сценарий, в свою очередь, может поочерёдно запускать несколько внешних приложений. Максимум, что можно тут сделать - использовать вами же и предложенный подход - вызывать нужные приложения изнутри сценария, который будет указан в качестве Setup. (прочие источники также рекомендуют делать этим способом).

среда, 5 декабря 2018 г.

команды WinRAR (SFX-модуля) - есть ли пауза\задержка?

Делаю инсталляцию на WinRAR в ней две строки Setup. Одна на cmd-исполняемый файл. Вторая на exe-исполняемый файл. Вторая должна стартовать, когда cmd выполнит все свои скрипты, но WinRar стартует вторую строку сразу после запуска первой. Понятно, что можно реализовать запуск exe из cmd-файла, но ради личной любознательности хотелось бы уточнить - есть ли понятие паузы\задержки на выполнение (аналог консольной start /wait) в командах SFX WinRar?


Ответ

Боюсь, что никак
Вместо названия приложения укажите имя BAT или CMD-файла, содержащего сценарий обработки содержимого SFX-архива. Сценарий, в свою очередь, может поочерёдно запускать несколько внешних приложений.
Максимум, что можно тут сделать - использовать вами же и предложенный подход - вызывать нужные приложения изнутри сценария, который будет указан в качестве Setup. (прочие источники также рекомендуют делать этим способом).