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