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).