Удаление каталога со всем содержимым

Delphi FAQ >> Файлы и каталоги

function DeleteDir(Dir: String): Boolean;
var
  Found : Integer;
  SearchRec: TSearchRec;
begin
  result := false;
  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;


В мире технологий постоянно что-то изобретают — компьютерные новости позволят вам быть в курсе событий