imho.ws |
![]() |
![]() |
|
Сообщения:
Перейти к новому /
Последнее
|
Опции темы |
![]() |
# 1 |
Member
Регистрация: 20.09.2002
Адрес: MARS
Сообщения: 300
![]() ![]() |
Какой функцией в Delphi7 можно удалить каталог (включая все подкаталоги).?
C:\Program Files\Моя_папка
Нужно удалить мою_папку. В ней куча папок и файлов. Не удалять же каждый файл функцией Delete/ Подскажите как правильнее ?
__________________
Папуас папуасу друг, товарищ и корм. |
![]() |
![]() |
# 2 |
::VIP::
Регистрация: 13.08.2003
Адрес: Москва
Сообщения: 1 137
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Код:
{ Удалить каталог со всем содержимым } 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) |
![]() |
![]() |
# 4 |
::VIP::
Регистрация: 13.08.2003
Адрес: Москва
Сообщения: 1 137
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
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) |
![]() |