Delphi для всех

Удалить каталог (даже если он не пустой)

Для удаления каталогов существует функция RemoveDirectory. Она удаляет каталог, если он пуст. Поэтому перед удалением каталога его нужно очистить. Для этого здесь используется рекурентная функция RemoveAll.

uses
FileCtrl;

procedure RemoveAll(path: string);
var
sr: TSearchRec;
begin
if FindFirst(path + '\*.*', faAnyFile, sr) = 0 then begin
repeat
if sr.Attr and faDirectory = 0 then begin
DeleteFile(path + '\' + sr.name);
end else begin
if pos('.', sr.Name) <= 0
then RemoveAll(path + '\' + sr.Name);
end;
until FindNext(sr) <> 0;
end;
FindClose(sr);
RemoveDirectory(PChar(path));
end;

procedure TForm1.Button1Click(Sender: TObject);
var
dir: string;
begin
if SelectDirectory('Удаление каталога', '', dir)
then RemoveAll(dir);
end;

Хостинг от uCoz