Delphi-Quellcode:
function RemoveDirectories(Dir:string):boolean;
// This function deletes a directory and returns the result of deletion
var SR:TSearchRec;
Continue:boolean;
begin
Result:=False;
Dir:=BackSlash(Dir);
Continue:=FindFirst(Dir+'*.*',faAnyFile,SR)=0;
while Continue do try
if copy(SR.Name,1,1)='.' then System.Continue;
if not DirectoryExists(Dir+SR.Name) then begin
SetFileAttributes(PChar(Dir+SR.Name),FILE_ATTRIBUTE_NORMAL);
DeleteFile(Dir+SR.Name);
end else RemoveDirectories(Dir+SR.Name);
finally
Continue:=FindNext(SR)=0;
end;
FindClose(SR);
SetFileAttributes(PChar(Dir),FILE_ATTRIBUTE_NORMAL);
Delete(Dir,length(Dir),1);
if length(Dir)>0 then Result:=RemoveDir(Dir);
end;
Das habe ich im StartMenuCleaner benutzt, aber manchmal scheint es Probleme zu geben - warum weiss ich nicht
Ein im Mittelpunkt stehender Kunde steht im Weg.