Простая функция в Delphi для удаления пустых каталогов получает имя каталога и удаляет все пустые каталоги/подкаталоги любого уровня вложенности.
function RemoveEmptyFolders(const rootFolder: string): boolean;
var
iRet: integer;
bRemove: boolean;
sr: TSearchRec;
begin
RemoveEmptyFolders := False;
bRemove := True;
iRet := FindFirst(rootFolder + '\*.*', faAnyFile, sr) ;
while (iRet = 0) do begin
if (sr.Name[1] <> '.') then begin
if (sr.Attr and faDirectory) <> 0 then begin
if not RemoveEmptyFolders(rootFolder + '\' + sr.Name) then bRemove := False;
end else begin
bRemove := False;
end;
end;
iRet := FindNext(sr) ;
end;
FindClose(sr) ;
if bRemove then RemoveEmptyFolders := RemoveDir(rootFolder) ;
end;
Комментарии