Hallo und frohe Ostern,
habe in meinem kleinen Progrämmchen eine kleine Suchfunktion eingebaut:
Code:
Code:
var
SR: TSearchRec;
ListItem: TListItem;
begin
try
if (ADirectory<>'') and (ADirectory[length(ADirectory)]<>'\') then
ADirectory:=ADirectory+'\';
if (FindFirst(ADirectory+AMask,faAnyFile-faDirectory,SR)=0) then begin
repeat
if (SR.Name<>'.') and (SR.Name<>'..') and (SR.Attr<>faDirectory) then
inc(Count);
ListItem := suchen.ListView1.Items.Add;
ListItem.Caption := aDirectory+SR.Name;
ListItem.SubItems.Add(IntToStr(SR.Size));
ListItem.SubItems.Add(DateToStr(FileDateToDateTime(SR.Time)));
ListItem.SubItems.Add(TimeToStr(FileDateToDateTime(SR.Time)));
ListItem.SubItems.Add(attr_(SR.Attr));
if suchAbbruch = True then exit;
until FindNext(SR)<>0;
FindClose(SR);
end;
if ARekursiv then
if (FindFirst(ADirectory+'*.*',faDirectory,SR)=0) then
begin
repeat
if (SR.Name<>'.') and (SR.Name<>'..') then
GetFilesInDirectory(ADirectory+SR.Name,AMask,AList,True);
until FindNext(SR)<>0;
FindClose(SR);
end;
Dat funktioniert, keine Frage. ABER: warum dauert das so verdammt lange.
Also mit diesem Code brauche ich für ca. 10.000 Dateien 22 Sekunden.
Bei einem anderem in Delphi geschriebenen Programm(Quelltext nicht vefügbar), welches ich mir angeguckt hatte, dauert das gleiche nur 2 Sekunden??
.
Vielleicht hat ja da jemand einen Tip für mich, denn diese Differenz ist viel zu groß. Versteh ich nicht.