function MakeFileList(Path, FileExt: string; LimitFile: string): TStringList; var sch: TSearchrec; begin Result := TStringlist.Create; if rightStr(trim(Path), 1) <> '/' then //RightStr Uses StrUtils Path := trim(Path) + '/' else Path := trim(Path); if not DirectoryExists(Path) then begin Result.Clear; exit; end; if FindFirst(Path + '*', faAnyfile, sch) = 0 then begin repeat Application.ProcessMessages; if ((sch.Name = '.') or (sch.Name = '..')) then Continue; // if DirectoryExists(Path + sch.Name) then begin Result.AddStrings(MakeFileList(Path + sch.Name, FileExt, LimitFile)); end else begin if ((UpperCase(extractfileext(Path + sch.Name)) = UpperCase(FileExt)) or (FileExt = '.*')) and (sch.Name = LimitFile) then Result.Add(Path + sch.Name); end; until FindNext(sch) <> 0; SysUtils.FindClose(sch); end; end;