====== Как удалить директорию, содержащую файлы и поддиректории ====== **Автор**: //Abdulaziz Jasser// В Delphi есть функция //RemoveDir// которая удаляет пустые директории. Но как быть, если директория содержит файлы и поддиректории? Для этой цели была создана функция, выполняющая те же действия, что и RemoveDir, но обладающая большими возможностями. Совместимость: Все версии Delphi Function MyRemoveDir(sDir : String) : Boolean; var iIndex : Integer; SearchRec : TSearchRec; sFileName : String; begin Result := False; sDir := sDir + '\*.*'; iIndex := FindFirst(sDir, faAnyFile, SearchRec); while iIndex = 0 do begin sFileName := ExtractFileDir(sDir)+'\'+SearchRec.Name; if SearchRec.Attr = faDirectory then begin if (SearchRec.Name <> '' ) and (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then MyRemoveDir(sFileName); end else begin if SearchRec.Attr <> faArchive then FileSetAttr(sFileName, faArchive); if NOT DeleteFile(sFileName) then ShowMessage('Could NOT delete ' + sFileName); end; iIndex := FindNext(SearchRec); end; FindClose(SearchRec); RemoveDir(ExtractFileDir(sDir)); Result := True; end; == Пример: == if NOT MyRemoveDir('D:\myDir') then ShowMessage('Can NOT delete dir'); == Заметка: == Кстати системные, скрытые и read-only файлы тоже будут удалены.