Как из Delphi паковать WinRar'ом?

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Busik
Сообщения: 3
Зарегистрирован: 18 окт 2006, 20:09

Господа,подскажите пожалуйста,как программно на Delphi упаковать файл WinRar’ом или Zip’ом ? За ранее огромное спасибо.
Dees
Сообщения: 7
Зарегистрирован: 05 ноя 2006, 12:16

Для того, чтобы работать с архивами в этих форматах, Вам нужно подключить соответствующие библиотеки.
Для ZIP: заходите на http://www.info-zip.org, качаете библиотеку unzip.dll
Для RAR: идете сюда - http://rarlab.com/rar_add.htm , и качаете архив с unrar.dll. В архивчике есть все нужные файлы, даже пример для Delphi... :) Правда, стоит оговориться, что эти библиотеки позволяют только распаковывать архивы, но не создавать (для RAR точно только распаковывать, на счет ZIP точно не знаю...).
Пока больше ничего посоветовать не могу, извиняйте :roll:
Snickbw
Сообщения: 9
Зарегистрирован: 01 ноя 2006, 15:36

Busik писал(а):Господа,подскажите пожалуйста,как программно на Delphi упаковать файл WinRar’ом или Zip’ом ? За ранее огромное спасибо.
WinRar должен присутствовать на компе.


var
sFileNameRar,sPathWinRAR,sPathRar, s:String;
sFileName,sRarPsw:String;
var
si : Tstartupinfo;
p : Tprocessinformation;
begin
sRarPsw:='PASSWORD'; //пароль для архива
sFileName:='TextOut.txt'; //имя архивируемого файла
sPathWinRAR := 'e:\Program Files\WinRAR\winRAR.exe';//где находиться WinRar.exe
sFileNameRar:='TextOut'; //имя архива без .rar
sPathRar:='e:\Archiv\'; //куда писать архивный файл

FillChar( Si, SizeOf( Si ) , 0 );
with Si do
begin
cb := SizeOf( Si);
dwFlags := startf_UseShowWindow;
wShowWindow := 4;
end;
s:=sPathWinRAR+' a -ep1 -hp'+sRarPsw+' '+sPathRar+sFileNameRar+' '+sPathRar+sFileName;
Createprocess(nil,PChar(s),nil,nil,false,Create_default_error_mode,nil,nil,si,p);//запускаем процесс архивировангия
Waitforsingleobject(p.hProcess,infinite); //и ждем его окончания
sFileName:='TextOut.rar'; //имя архивного файла
end;
Ответить