Moin ModHellwalker,
ich hab' das mal eben etwas abgwandelt.
Das Problem ist, dass die Prozedure sofort aussteigt, wenn sie nichts passendes mehr findet.
Das hier ist jetzt zwar auch noch nicht der Weisheit letzter Schluss, da der zu suchende Dateiname exakt (von Gross-/Kleinschreibung mal abgesehen) angegeben werden muss, also keine Wildcards erlaubt sind, aber ansonsten geht's.
Delphi-Quellcode:
procedure FindAllFiles(RootFolder: string; Mask: string; Recurse: Boolean = True);
var
SR: TSearchRec;
begin
if AnsiLastChar(RootFolder)^ <> '\' then
RootFolder := RootFolder + '\';
if Mask = '' then
Mask := '*.*';
if FindFirst(RootFolder + '*.*', faAnyFile, SR) = 0 then
try
repeat
if SR.Attr and faDirectory = faDirectory then
begin
if Recurse then
begin
if (SR.Name <> '.') and (SR.Name <> '..') then
FindAllFiles(RootFolder + SR.Name, Mask, Recurse);
end;
end else begin
if AnsiUpperCase(SR.Name) = AnsiUpperCase(Mask) then begin
Form1.Memo1.Lines.Add(RootFolder + SR.Name);
end;
end;
Application.ProcessMessages;
until FindNext(SR) <> 0;
finally
FindClose(SR);
end;
end;