Einzelnen Beitrag anzeigen

Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#1

Nach Dateityp suchen und dann löschen

  Alt 26. Mär 2008, 09:53
Hi,
ich schaffe es so rekursiv nach Dateien zu suchen, jedoch möchte ich nicht, dass sie nur gesucht werden, sie sollen auch gleich gelöscht werden!
Delphi-Quellcode:
procedure GetFilesInDirectory(Directory: String; const Mask: String;
                              List: TStrings;
                              WithSubDirs, ClearList: Boolean);

procedure ScanDir(const Directory: String);
var
  SR: TSearchRec;
begin
  if FindFirst(Directory + Mask, faAnyFile and not faDirectory, SR) = 0 then try
    repeat
      List.Add(Directory + SR.Name)
    until FindNext(SR) <> 0;
  finally
    FindClose(SR);
  end;

  if WithSubDirs then begin
    if FindFirst(Directory + '*.*', faAnyFile, SR) = 0 then try
      repeat
        if ((SR.attr and faDirectory) = faDirectory) and
           (SR.Name <> '.') and (SR.Name <> '..') then
          ScanDir(Directory + SR.Name + '\');
      until FindNext(SR) <> 0;
    finally
      FindClose(SR);
    end;
  end;
end;

begin
  List.BeginUpdate;
  try
    if ClearList then
      List.Clear;
    if Directory = 'then Exit;
    if Directory[Length(Directory)] <> '\then
      Directory := Directory + '\';
    ScanDir(Directory);
  finally
    List.EndUpdate;
  end;
end;

Ich hoffe mir kann jemand daraus eine Abänderung machen, dass sie also die Prozedur gleich auch noch die Dateien löscht.

Als Verwendungsbeispiel:
 GetFilesInDirectory('C:\', '*.*', Listbox1.Items, False, True); Am Besten wäre natürlich dass man einfach noch ein Boolean Wert hinzufügen könnte . Vielleicht geht dass auch mit ner For Schleife mit der Listbox dann aber ich glaube dass dauert dann viel länger oder?



MFG Lars Wiltfang
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat