Как из Delphi паковать WinRar'ом?
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Господа,подскажите пожалуйста,как программно на Delphi упаковать файл WinRar’ом или Zip’ом ? За ранее огромное спасибо.
Для того, чтобы работать с архивами в этих форматах, Вам нужно подключить соответствующие библиотеки.
Для ZIP: заходите на http://www.info-zip.org, качаете библиотеку unzip.dll
Для RAR: идете сюда - http://rarlab.com/rar_add.htm , и качаете архив с unrar.dll. В архивчике есть все нужные файлы, даже пример для Delphi...
Правда, стоит оговориться, что эти библиотеки позволяют только распаковывать архивы, но не создавать (для RAR точно только распаковывать, на счет ZIP точно не знаю...).
Пока больше ничего посоветовать не могу, извиняйте :roll:
Для ZIP: заходите на http://www.info-zip.org, качаете библиотеку unzip.dll
Для RAR: идете сюда - http://rarlab.com/rar_add.htm , и качаете архив с unrar.dll. В архивчике есть все нужные файлы, даже пример для Delphi...

Пока больше ничего посоветовать не могу, извиняйте :roll:
WinRar должен присутствовать на компе.Busik писал(а):Господа,подскажите пожалуйста,как программно на Delphi упаковать файл WinRar’ом или Zip’ом ? За ранее огромное спасибо.
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;