Hallo Allerseits,
ich habe ein Verzeichnis, in das von mehreren Programmen Dateien gespeichert werden. Nun würde ich immer gern die 50 aktuellsten Dateien in meinem Programm zur Ansicht darstellen. Zur Zeit lade ich mit FindFirst und FindNext alle Dateien in eine 50 Elemente lange Liste. Sobald ein Datum aktueller ist, wird die Liste entsprechend angepasst.
Nun würde ich gern das Ganze etwas beschleunigen, da bei mehreren Tausend Dateien die Durchsicht etwas dauert. Daher meine Frage: Ist es möglich FindFirst/-next so zu beeinflussen, dass direkt die aktuellsten Files als erstes geladen werden (oder weiss jemand, ob ich in der FindFirst-Source das Verhalten umstellen kann? Beim debuggen komme ich letztlich zu einem Hinweis >FindFirstFile is a Win32 Call<, was mir nicht weiter hilft)?
Ich nutze Win7
Danke
Michael
[Erledigt] 50 aktuellste Dateien in einem Verzeichnis suchen
[Erledigt] 50 aktuellste Dateien in einem Verzeichnis suchen
Zuletzt geändert von Michl am Mi 27. Nov 2013, 09:31, insgesamt 1-mal geändert.
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: Dateien suchen
Michl hat geschrieben: Beim debuggen komme ich letztlich zu einem Hinweis >FindFirstFile is a Win32 Call<, was mir nicht weiter hilft)?
Warum hilft dir das nicht weiter?
Das bedeutet, dass man sich bei Microsoft schlau machen kann, wie das funktioniert.
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Vllt findest du da auch eine weiterführende Fuktion wie
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Ich weiss aber nicht, ob die kann was du möchtest.
Re: Dateien suchen
Danke Theo für die Links! Ich habe mich schon ein bischen reingelesen, mal sehen, ob ich da weiter komme.
Eigentlich hatte ich gehofft, dass mein Ansatz falsch wäre oder es dafür mir unbekannte Einstellungen oder andere Methoden gäbe
Na mal schauen,
viele Grüße!
[Edit] Eine Suche beginnend mit dem jüngsten Datum scheint nicht möglich, so wie es aussieht stellt so ein Vorgehen das BS nicht zur Verfügung. Ich habe meinen Code noch etwas optimiert. Das Heraussuchen der 50 jüngsten Dateien aus über 20000 Dateien dauert nun interpoliert unter 40ms. ...wird wohl ausreichend sein müssen...
Eigentlich hatte ich gehofft, dass mein Ansatz falsch wäre oder es dafür mir unbekannte Einstellungen oder andere Methoden gäbe
Na mal schauen,
viele Grüße!
[Edit] Eine Suche beginnend mit dem jüngsten Datum scheint nicht möglich, so wie es aussieht stellt so ein Vorgehen das BS nicht zur Verfügung. Ich habe meinen Code noch etwas optimiert. Das Heraussuchen der 50 jüngsten Dateien aus über 20000 Dateien dauert nun interpoliert unter 40ms. ...wird wohl ausreichend sein müssen...
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;