Funkce pro hledání v souborovém systému FindFirst a FindNext lze nyní použít v rekurzivním volání.
Příklad:
uses
Sys_Files;
var
FileList: TStringList;
procedure FileSearch(const aDirName, aSearch: String);
var
LSearchRec: TFileSearchRec;
begin
if FindFirst(aDirName + '\*', faAnyFile, LSearchRec) = 0 then
try
repeat
if (LSearchRec.Attr and faDirectory) = 0 then begin
if AnsiUpperCase(ExtractFileExt(LSearchRec.Name)) = '.PDF' then begin
if Pos(aSearch, LSearchRec.Name) > 0 then
FileList.Add(aDirName + '\' + LSearchRec.Name);
end;
end else if (LSearchRec.Name <> '.') and (LSearchRec.Name <> '..') then begin
FileSearch(aDirName + '\' + LSearchRec.Name, aSearch);
end;
until FindNext(LSearchRec) <> 0
finally
FindClose(LSearchRec);
end;
end;