Entwickler-Ecke

Dateizugriff - Anzahl der Dateien im Ordner ermitteln


Der Michel - Mi 29.01.03 16:03
Titel: Anzahl der Dateien im Ordner ermitteln
Hallo,

gibt es eigentlich eine schnellere Möglichkeit die Anzahl der Dateien bzw. die Anzahl der Unterordner in einem Ordner zu zählen als über FindFirst(...) / FindNext(...)? Eine API-Funktion oder so etwas?
Wenn ich in Windows mit der rechten Maustaste auf einen Ordner und dann auf "Eigenschaften" klicke zählt Windows die Dateien ja auch recht schnell.

Gruß,

Michel


Delete - Mi 29.01.03 16:14

Was ist an FindFirst / FindNext langsam?


Der Michel - Mi 29.01.03 16:32

Für kleiner Datenmengen reicht FindFirst()/FindNext() völlig aus, aber angenommen man hat einen Ordner in dem sich insgesamt 15.000 Dateien in 30 Unterordnern befinden.
Ich hab es zwar noch nicht getestet, aber ich bin mir ziemlich sicher daß diese von Windows schneller gezählt werden als von der FindFirst()/FindNext() Methode.


Delete - Mi 29.01.03 16:38

Windows kocht auch nur mit Wasser, soll heißen, das Windows auch nur die API's benutzt. Allerdings nicht die VCL-Kapselung. Die von Microsoft werden die Routine bis ins letzte optimiert haben.

Desweiteren indiziert Windows die Dateien und Laufwerke, so dass die Informationen nicht jedes mal neu zusammengesucht werden müssen.


Der Michel - Mi 29.01.03 16:53

Bei Gelegenheit teste ich mal ob es schneller ist anstatt FindFirst() / FindNext() gleich FindFirstFile() / FindNextFile() aufzurufen (auf die FindFirst() / FindNext() ebenfalls zurückgreift).
Und es gibt keine Chance die Indizierung auszulesen?