(noch eine) Lösung zu rekursiver Ordnersuche
Oberschlumpf
Ich weiß, ich habe das Rad wohl auch nur noch mal neu erfunden :-), aber trotzdem möchte ich euch meine Version von rekursiver Ordnersuche vorstellen.
Wenn ich für irgendein "Projekt" Verzeichnisse + Unterverzeichnisse durchsuchen musste, schob ich diesen Programmierteil oft erst mal nach hinten, weil ich selbst nicht wusste, wie man Verzeichnisse + Unterverzeichnisse durchsucht.
Deswegen musste ich immer auf Lösungen wie
http://www.activevb.de/tipps/vb6tipps/tipp0602.html
http://www.activevb.de/tipps/vb6tipps/tipp0414.html
oder
http://www.activevb.de/tipps/vb6tipps/tipp0128.html
zurückgreifen.
(die Auswahl dieser 3 Links ist nur beispielhaft, weil es noch viele andere Links mit gleichen oder ähnlichen Lösungen gibt)
Na ja, jedenfalls mochte ich keine dieser Lösungen wirklich, weil ich immer wieder erst einlesen, verstehen + dann für meine Zwecke anpassen musste.
Ich finde den Code unübersichtlich, weil so viel.
Nun hab ich es selbst mal versucht.
Das Ergebnis könnt ihr nun sehen und testen (wer mag):
https://www.herber.de/bbs/user/78098.xls
Ich finde, im Vergleich zu den Lösungen in den vorgestellten Links ist mein Code sehr kompakt.
Mein Code ist zwar (auch) nicht schnell, aber wenn für fast 6000 Verzeichnisse nur ca. 1 Minute benötigt wird, dann ist das zumindest für mich ok.
Mein Code arbeitet mit einem Array, welches so lange gefüllt wird, bis alles durchsucht wurde.
1. Gestartet wird mein Code mit dem Makro "Ordnerauswahl"
2. Zuerst wird man aufgefordert, ein Verzeichnis - im weiteren das "Hauptverzeichnis" für den Code - auszuwählen
3. Nun werden, vom ausgewählten Verzeichnis, alle Unterverzeichnisse gesucht
4. Wenn 3. fertig, dann werden alle gefundenen Verzeichnisse im aktuellen Tabellenblatt in Spalte A aufgelistet
So, wer möchte, kann nun noch Spalte A sortieren + in einer Hilfsspalte nach doppelten Einträgen suchen.
In meinem Versuch mit den fast 6000 Unterverzeichnissen hab ich keine doppelten Einträge gefunden.
Ich würde mich freuen, wenn ihr meinen Code testet + mir Feedback gebt.
Es kann ja sein, dass ihr Fehler findet, von denen ich noch gar nicht wusste, dass es sie gibt :-)
Ciao
Thorsten