Hallo zusammen,
ich habe bei meiner Applikation mittlerweile festgestellt, dass die Routine zum Auflisten bestimmter Dateien in einem Verzeichnis bei knapp 3500 Dateien ca. 15 Sekunden dauert. Ich suche mit folgender Routine das Verzeichnis ab:
Delphi-Quellcode:
procedure ListFiles(Path, Ext: string; FileList: TStringList; Attr: integer);
var
SR : TSearchRec;
begin
if Length(Path) > 0 then
Path := IncludeTrailingBackslash(Path);
if FindFirst(Path + Ext, faAnyFile, SR) = 0 then
begin
repeat
if (SR.Attr <> faDirectory) then
begin
if (fmPhoto.ImageSet.CheckAttr) and (not fmPhoto.DoRefreshAll) then
if (SR.Attr and Attr) = 0 then
Continue;
if UpperCase(ExtractFileExt(SR.Name)) = UpperCase(ExtractFileExt(Ext)) then
FileList.Add(SR.Name);
end;
until FindNext(SR) <> 0;
SysUtils.FindClose(SR);
end;
end;
Sind die Kriterien erfüllt worden, wird dann außerhalb dieser Routine weiter mit den einzelnen Dateien gearbeitet.
Wie kann man also diese Routine optimieren bzw. beschleunigen?
Danke & Gruß, Moony