Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > RAR-архивирование программно


Автор: Romero 14.8.2005, 08:39
http://forum.vingrad.ru/index.php?showtopic=24619&unread=1&hl=flexcompress упоминаются компоненты от http://www.componentace.com/. Очень удобные и понятные, спасибо!
НО есть ли что-либо подобное для создания RAR-архивов (с возможностью задавания пароля)? А желательно вообще один компонент для работы как с RAR, так и с ZIP.
Заранее спасибо!

Автор: Quadr0 14.8.2005, 14:16
...

Автор: Snowy 15.8.2005, 09:13
Рошаль за счет того и живет, что продает WinRAR.
Хочешь паковать - договаривайся с ним, плати денежку.
За бесплатно только декомпрессия.

Автор: Medved 15.8.2005, 19:16
Как вариант можно использовать коммандную строку, только нужно будет гасить консольное окно. И с программой поставлять консольные утилиты распаковки и запаковки архивов.
В принципе написать такой класс - не проблема.

Автор: Romero 16.8.2005, 06:26
Pegas
Это я уже писал - не сложно, но ZIPовать дает тока 32-битная версия (WinRAR.exe), а консольная - толко RARить.
При использовании такого метода выскакивает стандартное окно упаковки WinRAR, бежит процесс итп. Поскольку файлы довольно большие приходится паковать, оно довольно долго висит. Можно ли как-то выдирать процент выполнения операции из этого окна? Если невозможно, то надо прятать окошко WinRAR и реагировать на завершение его работы (в этом случае подскажите с кодом - с окнами др. приложений не работал).

Автор: RA 16.8.2005, 08:28
Цитата(Snowy @ 15.8.2005, 09:13)
Хочешь паковать - договаривайся с ним, плати денежку.


smile
Мне это напомнило историю прочитанную на какомто форуме:

Цитата
Я решил написать письмо создателю Restorator'a, в катором просил его дать мне исходный код программы "Restorator" под чесное слово что я никому его не дам.

На что пришёл ответ от создателя программы:
Исходник ресторатора стоит 500 000$ но поскольку вы из россии, а я слышал в россии люди бедные то вам я продам этот исходник за 490 000$


PS: Если можно договорится то максимум на алгоритм компресси, а вот структура архива останется за кадром.


Автор: Romikgy 16.8.2005, 08:36
Цитата(Romero @ 16.8.2005, 06:26)
но ZIPовать дает тока 32-битная версия (WinRAR.exe)

А использовать pkzip религия не позволяет?

Автор: Akella 16.8.2005, 14:14
Цитата(Pegas @ 15.8.2005, 19:16)
Как вариант можно использовать коммандную строку, только нужно будет гасить консольное окно. И с программой поставлять консольные утилиты распаковки и запаковки архивов.
В принципе написать такой класс - не проблема.

полность согласен, так и делаю


Цитата(Romero @ 16.8.2005, 06:26)
При использовании такого метода выскакивает стандартное окно упаковки WinRAR, бежит процесс итп.

1. нужно использовать не winrar.exe, а rar.exe
2. окно нужно гасить

мало того косольная версия rar ещё и коды ошибок возвращает, нужно внимательно почитать Help, а в версии 3.50 есть текстовый спец. файл-справка для консольной версии).
Добавлено @ 14:21
rar.exe всегда "кидаю" в C:\Windows\
Код

ShellExecute(Handle,'open','rar',PAnsiChar('a -df -ep -agYYYY-MM-DD ' +sAGentstvo+' @ToSend.List'),PAnsiChar(sPathToSave),SW_Hide);


- ToSend.List - файл список

Код

добавляем в slFileList список файлов
...
slFileList.SaveToFile(sPathToSave+'ToSend.List');

Автор: Romero 17.8.2005, 07:23
dsergey
Внимательнее! rar.exe не дает паковать в ZIP! И окно мне нужно не просто спрятать, а скрыть и узнать, когда процесс завершится.
Romikgy
pkzip использовать не позволяет не религия, а незнание. Если умеешь при помощи него паковать и RAR, и ZIP (при этом без проблем с длинными именами и русскими символами в путях), то научи. Буду премного благодарен!

В целом, паковать из проги я уже передумал. Проще будет воспользоваться winrar.exe с нужными параметрами. Только бы с его окном разобраться: либо скрывать, выдавая прогресс-бар процесса архивирования, либо вообще не гасить его (пущай висит, зараза, пока не закончит паковать).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)