Irgendwas stimmt nicht so ganz. Ich habe gerade mal die beiden Funktionen auf mein Systemlaufwerk "c:\" losgelassen (mehrmals, damit der Cache benutzt wird):
Iterativ: ca. 19 sek, Ergebnis: 280736 Dateien/Verzeichnisse
Rekursiv: ca. 9 sek, Ergebnis: 276358 Dateien/Verzeichnisse
Vom Geschwindigkeitsunterschied her kommt das Deiner Messung mit der SSD recht nahe, aber die rekursive Funktion unterschlägt hier einige Dateien/Verzeichnisse. Welche kann ich nicht sagen, habe die Ergebnisse nicht im einzelnen verglichen.
Meine eigene rekursive Funktion liefert aber auch 280736 Ergebnisse, von daher muss in Deiner rekursiven Funktion ein Fehler stecken. Kann es sein, dass die statische Variable diese Probleme verursacht?
Allerdings benötigt meine rekursive Funktion auch nur etwas über 9 sek. Im Vergleich zu Deiner iterativen ist sie also ca. doppelt so schnell. Bei kleineren Verzeichnisbäumen zieht Deine iterative Funktion aber gnadenlos an meiner vorbei.
Das heißt, Deine iterative Funktion hat noch Probleme mit großen Verzeichnisbäumen. ![]()