Vieleicht suchst du ja sowas (der erte Aufruf dauert, wenn Du Windows als Such-Ordner lässt...)
Wie Du die ermittelten Dateien (statt im Memo zu listen) auswertest, sollte klar sein.
Delphi-Quellcode:
procedure ListDirectory(APath, AFilter : String; AStrings : TStrings);
var
s : String;
sr : TSearchRec;
begin
s := IncludeTrailingPathDelimiter(APath);
try
if FindFirst(s + AFilter, faAnyFile, sr) = 0 then
begin
repeat
if (sr.Name <> '.') and (sr.Name <> '..') then // Korrektur durch DeddyH
begin
AStrings.Add(s + sr.Name);
if (sr.Attr and faDirectory) = faDirectory then
ListDirectory(s + sr.Name, AFilter, AStrings);
end;
until FindNext(sr) <> 0;
end;
finally
FindClose(sr);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.BeginUpdate;
ListDirectory('C:\Windows', '*.*', Memo1.Lines);
Memo1.Lines.EndUpdate;
end;