Einzelnen Beitrag anzeigen

Benutzerbild von St.Pauli
St.Pauli

Registriert seit: 26. Dez 2004
351 Beiträge
 
Delphi 7 Personal
 
#1

Festplatte nach Dateien dursuchen

  Alt 7. Jan 2005, 15:09
Hi,

hab den Quelltext von EasyHelper, womit man eine Festplatte, oder auch nur einen Ordner durchsuchen kann. Ich will das ganze benutzen, damit es mir alle unnützen Dateien löscht. das klappt schon ganz gut. hab nur 3 Fragen.
Hier erstma der Qelltext:

Code:
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 - 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 = 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;
Code:
procedure TForm1.Button1Click(Sender: TObject);
begin
  GetFilesInDirectory('C:\', '*.*', Listbox1.Items, False, True);
//wenn man das False auf True setzt, durchsuch er alle unterordner
end;
So, nun hab ich 3 Fragen:

1. Wie kann ich das Umstellen, dass zum Beispiel bei einer such nach *.abc und nach *.xyz gleichzeitig gesucht wird, also nicht:

Code:
GetFilesInDirectory('C:\', '*.abc', Listbox1.Items, False, True);
GetFilesInDirectory('C:\', '*.xyz', Listbox1.Items, False, True);
2. Werden dann auch beide Dateien in die Listox1 kopiert, oder brauche ich 2 Boxen?

3. Wie kann ich eine ProgressBar einbinden, weil wenn man die ganze Festplatte durchsucht dauert es ganz schön lange.

So, jetzt schonma danke für jede antwort !!

cu
  Mit Zitat antworten Zitat