Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создания архива [D6, D7]


IgorM ©   (2005-08-29 10:50:00) 

Если можно то подробно опишите как создать архив! Например, есть папка c:\program\data - ее надо заархивировать в c:\program\arhiv\data.rar ! если можно, то без дополнительных компонент!


Brother   (2005-09-07 08:44:00) [1]

1.А консольный Rar не подойдет? Загоняй в CommandLine че хочешь во проблемма!
2. Поищи описания процедур в инете к UnRar.dll я где-то видел.


IgorM   (2005-08-29 11:56:00) [2]

И на том спасибо! Попробую разобраться!


dmitry501   (2005-08-29 11:43:00) [3]

Вот, правда для 7z. Надеюсь для rar сам переделаешь.
 function ArcFile(Path: string; FileName: string; const Extension: string):Boolean;
 var
   PMSI: StartupInfo;
   PMPI: Process_Information;
   FileNameArc: string;
   cmdLine: string;
   CurrPath: string;
 begin
   Result := True;
   CurrPath := GetCurrentDir();
   ChDir(Path7z);
   ZeroMemory(@PMSI, sizeof(PMSI));
   PMSI.cb := SizeOf(PMSI);
   PMSI.dwFlags := STARTF_USESHOWWINDOW;
   PMSI.wShowWindow := SW_NORMAL;
   //  PMSI.wShowWindow := SW_HIDE;
   ChDir(Path);
   FileNameArc := ChangeFileExt(FileName, Extension);
   cmdLine := Path7z + '7za.exe a ' + FileNameArc + ' ' +FileName + ' -y';
   if not CreateProcess(nil, PChar(cmdLine), nil, nil, False,
     NORMAL_PRIORITY_CLASS,
     nil, nil, PMSI, PMPI) then
   begin
     result := False;
     Log := 'Не могу запустить ' + Path7z + '7za.exe';
   end
   else
   begin
     if WaitForSingleObject(PMPI.hProcess, 10000) = WAIT_OBJECT_0 then
     else
     begin
       result := False;
       Log := 'Таймаут архиватора ' + Path7z + '7za.exe';
     end;
   end;
   CloseHandle(PMPI.hProcess);
   CloseHandle(PMPI.hThread);
   ChDir(CurrPath);
 end;

p.s.
Вырвал из программы ничего не исправляя, так что ....


IgorM   (2005-08-29 11:32:00) [4]

Я смотрел! конкретно ничего ненашел! Был один пример архивирования но оно даже показало процес архивирования а архив не делало! Так что пожалуйста помоги если конечно очень не впадло!


dmitry501   (2005-08-29 11:28:00) [5]

IgorM ©   (29.08.05 11:17) [5]
Я-то могу. А тебе в многочисленные FAQ лень глядеть? Вот и мне лень копи-пасте делать...


IgorM   (2005-08-29 11:27:00) [6]

> Anatoly Podgoretsky Непонял, что ты имел ввиду!


Anatoly Podgoretsky   (2005-08-29 11:24:00) [7]

IgorM ©   (29.08.05 11:02) [2]
Компоненты для архивирования отсутствуют, формат закрытый.


IgorM   (2005-08-29 11:17:00) [8]

> dmitry501
Вот раром мне и надо! Приведи код - если можеж !

> Юрий Зотов но ведь можно как то через shellexecute!


Юрий Зотов   (2005-08-29 11:10:00) [9]

> IgorM ©   (29.08.05 10:50)

Есть компоненты, пакующие в ZIP, их легко можно найти в Сети. Если без компонентов, то в Delphi есть модуль ZLib, но формат архива не будет совместим с zip, rar и пр.


dmitry501   (2005-08-29 11:04:00) [10]

Никак. Только раром. Его можно вызвать из Delphi


IgorM   (2005-08-29 11:02:00) [11]

Надо в делфи!


Leonid Troyanovsky   (2005-08-29 10:58:00) [12]


> IgorM ©   (29.08.05 10:50)  
> Если можно то подробно опишите как создать архив! Например,
> есть папка c:\program\data - ее надо заархивировать в c:\program\arhiv\data.rar
> ! если можно, то без дополнительных компонент!


Можно даже без дельфи: rar /?

--
Regards, LVT.


Наверх

Титульная страница Поиск, карта сайта Написать письмо