Einzelnen Beitrag anzeigen

PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#1

ALLES in einem Ordner löschen (außer versteckte Dateien)

  Alt 14. Apr 2009, 17:19
Hallo, ich möchte eine Routine zur Diskussion stellen: Sie löscht alle Dateien (außer versteckte Dateien) und Ordner in einem Verzeichnis. Da alles was mit dem Löschen von Dateien zu tun hat, potentiell fatale Folgen haben kann, wäre ich froh eure Kommentare dazu zu hören ...

Delphi-Quellcode:
procedure MyDeleteAllNoHidden(const Path, WildCard: string);
// Löscht alle Dateien und Ordner (außer versteckte Dateien) im Verzeichnis Path!!!
// Aufrufbeispiel: MyDeleteAllNoHidden('D:\MyDir\ADir\', '*');
var
  SR: TSearchRec;
  AllFiles: string;
begin
  if FindFirst(Path + WildCard, (faAnyFile or faDirectory) and not faHidden, SR) = 0 then
  repeat
    if (SR.Name <> '.') and (SR.Name <> '..') then
    begin
      //AllFiles := AllFiles + Path + SR.Name + #13#10;
      if JclFileUtils.IsDirectory(Path + SR.Name) then
        JclFileUtils.DeleteDirectory(Path + SR.Name, True)
      else
        DeleteFile(Path + SR.Name);
    end;
  until FindNext(SR) <> 0;
  FindClose(SR);
  //MessageDlg(AllFiles, mtInformation, [mbOK], 0);
end;
  Mit Zitat antworten Zitat