Delphi-Quellcode:
if Recurse then
if FindFirst(RootFolder + '*.*', faAnyFile, SR) = 0 then //<-- geht durch den Verzeichnisbaum
try
repeat
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
if (SR.Name <> '.') and (SR.Name <> '..') then
FindAllFiles(FileList, RootFolder + SR.Name, Mask, Recurse);
until FindNext(SR) <> 0;
finally
FindClose(SR);
end;
if FindFirst(RootFolder + Mask, faAnyFile, SR) = 0 then
try
repeat
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
FileList.Add(RootFolder + SR.Name);
end;
until FindNext(SR) <> 0;
finally
FindClose(SR);
end;
Da es sich um rekursion handelt , wird erst zum tiefsten Punkt der Verzeichnisstruktur gewechselt (FindFirst und FindNext mit Maske *.*) dort wird dann FindFirst und FindNext mit der Suchmaske ausgeführt.
Dies ist bei Dir nicht der Fall, bei Dir wird zuerst nach einem File mit der Suchmaske *.ini gesucht.
Ist das erfolglos wird nicht nach Unterverzeichnissen gesucht.
Du müsstes Dein Funktion etwas umbauen.
Grüße
Klaus