Thema: Delphi Ordner löschen

Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.546 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Ordner löschen

  Alt 16. Nov 2007, 17:34
Evtl. so (vorsichtig beim Ausprobieren!!):
Delphi-Quellcode:
function DeleteDirRecursive(sPath: string; DoNotDelete: TStrings): Boolean;
var Rec: TSearchRec;
begin
  if not DirectoryExists(sPath) then
    begin
      Result := false;
      exit;
    end;
  sPath := IncludeTrailingPathDelimiter(sPath);
  if FindFirst(sPath + '*.*',faAnyFile,Rec) = 0 then
    begin
      repeat
        if (Rec.Attr and faDirectory) = faDirectory then
          begin
            if (Rec.Name <> '.') and (Rec.Name <> '..') and
               (*Vorsicht!! Man muss sich einig sein, wie man die
                Verzeichnisnamen einträgt (ganzer Pfad oder nicht,
                 groß oder klein geschrieben etc.) *)

               (DoNotDelete.IndexOf(Rec.Name) < 0) then
              DeleteDirRecursive(sPath + Rec.Name,nil);
          end
        else
          DeleteFile(sPath + Rec.Name);
      until FindNext(Rec) <> 0;
      FindClose(Rec);
    end;
  Result := RemoveDir(sPath);
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat