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


Автор: CubeCode 22.9.2006, 17:25
Привет всем!

Я тут недавно был озадачен проблемой насчет zip-архивации, поскольку мне нужно было собирать jar-файл (j2me-приложение для телефона), а он запакован именно алгоритмом ZIP.

Походил по поисковикам, но вылетали только платные компоненты и какие-то непонятные DLL-файлы. smile 

Ответ оказался намного проще, чем я думал (ЭВРИКА!!!!!). smile 
Я подумал: "А почему бы не использовать стандартные средства упаковки типа Command Line?"

Идеальный инструмент для этой цели оказался 7zip. Вот ссылка:
http://prdownloads.sourceforge.net/sevenzip/7za442.zip?download

Копируем файл из архива (7za.exe), напримаер, в корень проекта, после чего пишем код:

Код

...
var run_file:TFileRun; //для использования этого типа подключите  ExtActns в разделе uses
begin
  run_file:= TFileRun.Create(Application);
  run_file.Directory:=ExtractFilePath(Application.Exename); // устанавливаем папку для работы архиватора. в данном случае это - корневая папка проекта (где лежит exe-Файл).
  run_file.FileName:='7za.exe';
  run_file.Parameters:=' a -tzip pack.zip *.* -x!*.tmp'; //Параметры коммандной строки
  run_file.ShowCmd:=scHide; //Не отображать окно консоли при выполнении
  run_file.Execute;
end;


В данном примере архиватор запакует все файлы (*.*) за исключением файлов с расширением tmp (-x!*.tmp) в архив pack.zip

Вот такая находка. Может кому-нибудь поможет в жизни smile

Ну а кому нужно более детальное рассмотрение возможностей - в архиве с программой есть chm-файл, описывающий все ключи и примочки, которые можно использовать в коммандной строке.

Есть еще варианты? Пишите. Посморим, попробуем, оценим и ответим, какой из методов лучше  smile 

Автор: Snowy 22.9.2006, 17:51
Да уж. Находка...
Я бы даже сказал - меганаходка!
Поздравляю, ты открыл Америку!

На тори море бесплатных библиотек, позволяющих тромбовать бесплатно и без dll.
Я уж не говорю про толпу тем на форуме, где это 300 раз обсуждалось и дано полтора килограмма вариантов.

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