Статьи
|
Следующая функция полностью удаляет каталог независимо от того, заполнен ли каталог и имеются ли подкаталоги. Никакого подтверждения не требуется, так что будьте осторожны! Если операция прошла успешно, функция возвращает TRUE, в противном случае FALSE.
Пример использования:
if DelTree('c:\TempDir') then
ShowMessage('Каталог удален!')
else
ShowMessage('Произошла ошибка!') ;
{ ................................. }
uses ShellAPI;
Function DelTree(DirName : string): Boolean;
var
SHFileOpStruct : TSHFileOpStruct;
DirBuf : array [0..255] of char;
begin
try
Fillchar(SHFileOpStruct,Sizeof(SHFileOpStruct),0) ;
FillChar(DirBuf, Sizeof(DirBuf), 0 ) ;
StrPCopy(DirBuf, DirName) ;
with SHFileOpStruct do begin
Wnd := 0;
pFrom := @DirBuf;
wFunc := FO_DELETE;
fFlags := FOF_ALLOWUNDO;
fFlags := fFlags or FOF_NOCONFIRMATION;
fFlags := fFlags or FOF_SILENT;
end;
Result := (SHFileOperation(SHFileOpStruct) = 0) ;
except
Result := False;
end;
end;
|