Wie kann ich alle Dateien in einem Verzeichnis löschen?


Es werden nacheinander alle Dateien über die Funktionen FindFirst() und FindNext() gesucht und mittels DeleteFile() gelöscht:

procedure DeleteAll(Dir, Files : string);
var SearchRec : TSearchRec;
begin
  if FindFirst(Dir+Files, faAnyFile, SearchRec) = 0 then begin
    DeleteFile(SearchRec.Name);
    while FindNext(SearchRec) = 0 do begin
      DeleteFile(Dir + SearchRec.Name);
    end;
  end;
  FindClose(SearchRec);
end;

Aufgerufen wird die Routine mit

DeleteAll( 'c:\temp\' , '*.*' );

order auch

DeleteAll( 'd:\dateien\' , '*.bak' );

Wichtig: das \ am Ende des Verzeichnisses nicht vergessen.

Das Verzeichnis selber wird nicht gelöscht.

Delphi 1 Delphi 2 Delphi 3 Delphi 4
nicht getestet Version nicht betroffen getestet

siehe auch:

Arbeiten mit Dateien (löschen, kopieren, verschieben...).
Arbeiten mit Dateien (für Fortgeschrittene).


Delphi FAQ