Hallo,
ich verwenden folgende Routine um Verzeichnisse zu druchsuchen:
Delphi-Quellcode:
procedure THDDSearchingForm.FindAllFiles(RootFolder: string; Mask: string = '*.*'; Recurse: Boolean = True);
var
SR: TSearchRec;
begin
Application.ProcessMessages;
RootFolder := IncludeTrailingPathDelimiter(RootFolder);
if Recurse then
if FindFirst(RootFolder + '*.*', faAnyFile, SR) = 0 then
try
repeat
Application.ProcessMessages;
if SR.Attr and faDirectory = faDirectory then
// --> ein Verzeichnis wurde gefunden
// der Verzeichnisname steht in SR.Name
// der vollständige Verzeichnisname (inkl. darüberliegender Pfade) ist
// RootFolder + SR.Name
AktFolder := StringReplace(RootFolder,'\.','',[rfReplaceAll]) + SR.Name;
if (SR.Name <> '.') and (SR.Name <> '..') then
FindAllFiles(RootFolder + SR.Name, Mask, Recurse);
until FindNext(SR) <> 0;
finally
FindClose(SR);
end;
if FindFirst(RootFolder + Mask, faAnyFile, SR) = 0 then
try
repeat
Application.ProcessMessages;
if SR.Attr and faDirectory <> faDirectory then
begin
// --> eine Datei wurde gefunden
// der Dateiname steht in SR.Name
// der vollständige Dateiname (inkl. Pfadangabe) ist
// RootFolder + SR.Name
// folgende Zeile schreibt den vollständigen Namen in eine Memo Feld des
// Formulars Form1
If (GetSize(RootFolder + SR.Name) >0) and (GetSize(RootFolder + SR.Name) < 10240) then
begin
If ReadGroup(RootFolder + Sr.Name) = 'error' then else
begin
AdressesBox.Items.Add(Copy(SR.Name,0,Length(SR.Name)-4));
end;
Application.ProcessMessages;
end;
end;
until FindNext(SR) <> 0;
finally
FindClose(SR);
end;
Hab ich
hier her.
Naja jedenfalls möchte ich jetzt eine kleine Anzeige machen. Und zwar eine, die anzeigen soll, ob aktuell gesucht wird, oder ob die Suche beendet ist. Ich hatte es erst mit einer Variable probiert, diese am Anfang auf true und am Ende der Routine auf false gesetzt. Hat aber nicht funktioniert.
Kann mir vielleicht jemand helfen?
MfG
Daniel L.