imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 02.02.2004, 00:11     # 1
Sancho7
Member
 
Аватар для Sancho7
 
Регистрация: 20.09.2002
Адрес: MARS
Сообщения: 300

Sancho7 Нимб уже пробиваетсяSancho7 Нимб уже пробивается
Какой функцией в Delphi7 можно удалить каталог (включая все подкаталоги).?

C:\Program Files\Моя_папка

Нужно удалить мою_папку. В ней куча папок и файлов.
Не удалять же каждый файл функцией Delete/ Подскажите как правильнее ?
__________________
Папуас папуасу друг, товарищ и корм.
Sancho7 вне форума  
Старый 02.02.2004, 10:24     # 2
Makc
::VIP::
 
Аватар для Makc
 
Регистрация: 13.08.2003
Адрес: Москва
Сообщения: 1 137

Makc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc Гуру
Код:
{ Удалить каталог со всем содержимым }

function DeleteDir(Dir  : string)  : boolean;
Var
 Found  : integer;
 SearchRec : TSearchRec;
begin
  result:=false;
  if IOResult<>0 then ;
  ChDir(Dir);
  if IOResult<>0 then begin
   ShowMessage('Не могу войти в каталог: '+Dir); exit;
  end;
  Found := FindFirst('*.*', faAnyFile, SearchRec);
  while Found = 0 do
  begin
   if (SearchRec.Name<>'.')and(SearchRec.Name<>'..') then
    if (SearchRec.Attr and faDirectory)<>0 then begin
     if not DeleteDir(SearchRec.Name) then exit;
    end else
     if not DeleteFile(SearchRec.Name) then begin
      ShowMessage('Не могу удалить файл: '+SearchRec.Name); exit;
     end;
    Found := FindNext(SearchRec);
  end;
  FindClose(SearchRec);
  ChDir('..'); RmDir(Dir);
  result:=IOResult=0;
end;
__________________
Makc aka Maximus (on other boards)
Makc вне форума  
Старый 02.02.2004, 11:10     # 3
Sancho7
Member
 
Аватар для Sancho7
 
Регистрация: 20.09.2002
Адрес: MARS
Сообщения: 300

Sancho7 Нимб уже пробиваетсяSancho7 Нимб уже пробивается
Ой спасибоо друг. Получай пятак.

P.S
возник дополнительный вопрос. Как создать каталог и скопировать в него файлы из другого каталога ?
__________________
Папуас папуасу друг, товарищ и корм.
Sancho7 вне форума  
Старый 02.02.2004, 11:21     # 4
Makc
::VIP::
 
Аватар для Makc
 
Регистрация: 13.08.2003
Адрес: Москва
Сообщения: 1 137

Makc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc Гуру
Sancho777
Копирование со всеми подкаталогами:
Код:
var
  OpStruc: TSHFileOpStruct;
  frombuf, tobuf: Array [0..128] of Char;
Begin
 FillChar( frombuf, Sizeof(frombuf), 0 );
 FillChar( tobuf, Sizeof(tobuf), 0 );
 StrPCopy( frombuf, 'h:\hook\*.*' );
 StrPCopy( tobuf, 'd:\temp\brief' );
 With OpStruc DO Begin
  Wnd:= Handle;
  wFunc:= FO_COPY;
  pFrom:= @frombuf;
  pTo:=@tobuf;
  fFlags:= FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
  fAnyOperationsAborted:= False;
  hNameMappings:= Nil;
  lpszProgressTitle:= Nil;
 end;
 ShFileOperation( OpStruc );
end;
__________________
Makc aka Maximus (on other boards)
Makc вне форума  
Старый 03.02.2004, 12:44     # 5
Sancho7
Member
 
Аватар для Sancho7
 
Регистрация: 20.09.2002
Адрес: MARS
Сообщения: 300

Sancho7 Нимб уже пробиваетсяSancho7 Нимб уже пробивается
Makc а собсна как ей пользоваться? поясни кратенько плиз.
__________________
Папуас папуасу друг, товарищ и корм.
Sancho7 вне форума  
Старый 03.02.2004, 13:14     # 6
Makc
::VIP::
 
Аватар для Makc
 
Регистрация: 13.08.2003
Адрес: Москва
Сообщения: 1 137

Makc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc Гуру
Цитата:
StrPCopy( frombuf, 'h:\hook\*.*' );
Каталог, откуда компируем
Цитата:
StrPCopy( tobuf, 'd:\temp\brief' );
Куда копируем
__________________
Makc aka Maximus (on other boards)
Makc вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 07:18.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.