Страница 1 из 1

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

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

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

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

Добавлено: 12 ноя 2006, 22:49
Snickbw
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;