Datei-Anzahl in einem Verzeichnis ermitteln
Verfasst: Mo, 05.11.2012 10:15
Hallo und einen schönen Morgen Experten!
Zuerst das mir Bekannte:
Über den Service "SimpleFileAccess" läßt sich mit der Methode "getFolderContents" wunderbar der Verzeichnisinhalt in einen Array einlesen. Die Größe des Arrays (UBound) gibt dann Auskunft über die Anzahl der Verzeichniseinträge.
Das Problem:
Je größer der Verzeichnisinhalt um so länger dauert das Einlesen mit "getFolderContents". Ab ca. 600 Einträgen wird die Lesezeit unerträglich und kann bei einigen 1000 Einträgen mehrere Minuten dauern. Offenbar analysiert "getFolderContents" auch die Datei-Inhalte: Befinden sich nämlich in dem betreffenden Verzeichnis sehr große Dateien (in meinem Fall sehr große, DBF-Datenbankdateien) schmiert OO sogar komplett ab!
Die "Dir()"-Funktion kann ich dazu nicht gebrauchen, weil ich eine Dateiliste incl. möglicher Unterordner erstelle und dazu einen rekursiven Aufruf der Foldercontent-Routine benutze. Die "Dir()"-Funktion läßt sich aber nur einmal aufrufen bzw. bezieht sich in den weiteren Durchläufen immer auf die letzte Pfad-Abfrage, was natürlich bei rekursiven Abläufen zu einem heillosen Durcheinander führt.
Die Frage:
Gibt es Methoden, um schnell und mit wenig Speicherlast die Anzahl von Dateien eines Verzeichnisses zu ermitteln? Ich könnte dann wenigstens eine mögliche Überlastung vorher abfangen, bevor ich mit "getFolderContents" eine Dateiliste erstelle.
Gruß: ejomi
Zuerst das mir Bekannte:
Über den Service "SimpleFileAccess" läßt sich mit der Methode "getFolderContents" wunderbar der Verzeichnisinhalt in einen Array einlesen. Die Größe des Arrays (UBound) gibt dann Auskunft über die Anzahl der Verzeichniseinträge.
Das Problem:
Je größer der Verzeichnisinhalt um so länger dauert das Einlesen mit "getFolderContents". Ab ca. 600 Einträgen wird die Lesezeit unerträglich und kann bei einigen 1000 Einträgen mehrere Minuten dauern. Offenbar analysiert "getFolderContents" auch die Datei-Inhalte: Befinden sich nämlich in dem betreffenden Verzeichnis sehr große Dateien (in meinem Fall sehr große, DBF-Datenbankdateien) schmiert OO sogar komplett ab!
Die "Dir()"-Funktion kann ich dazu nicht gebrauchen, weil ich eine Dateiliste incl. möglicher Unterordner erstelle und dazu einen rekursiven Aufruf der Foldercontent-Routine benutze. Die "Dir()"-Funktion läßt sich aber nur einmal aufrufen bzw. bezieht sich in den weiteren Durchläufen immer auf die letzte Pfad-Abfrage, was natürlich bei rekursiven Abläufen zu einem heillosen Durcheinander führt.
Die Frage:
Gibt es Methoden, um schnell und mit wenig Speicherlast die Anzahl von Dateien eines Verzeichnisses zu ermitteln? Ich könnte dann wenigstens eine mögliche Überlastung vorher abfangen, bevor ich mit "getFolderContents" eine Dateiliste erstelle.
Gruß: ejomi