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 dobegin
sFileName := ExtractFileDir(sDir)+'\'+SearchRec.name;
if SearchRec.Attr = faDirectory thenbeginif (SearchRec.name <> '' ) and (SearchRec.name <> '.') and
(SearchRec.name <> '..') then
MyRemoveDir(sFileName);
endelsebeginif SearchRec.Attr <> faArchive then
FileSetAttr(sFileName, faArchive);
ifnot DeleteFile(sFileName) then
ShowMessage('Could NOT delete ' + sFileName);
end;
iIndex := FindNext(SearchRec);
end;
FindClose(SearchRec);
RemoveDir(ExtractFileDir(sDir));
Result := True;
end;
// ***************************** //// Пример: //// ***************************** //ifnot MyRemoveDir('D:\myDir') then
ShowMessage('Can NOT delete dir');
// Кстати, системные, скрытые и// read-only файлы тоже будут удалены.
Статья Удалить каталог со всем содержимым 2 раздела Файловая система Директории может быть полезна для разработчиков на Delphi и FreePascal.
Комментарии и вопросы
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.