Hi,
Mein anderer Ansatz war, alle Werte in ein nicht-rekursives Array zu packen, zu sortieren
fast gut... nimm doch hierzu im ersten Schritt einfach nur die Namen - egal ob Datei oder Verzeichnis - der aktuellen Ebene. Die sortierst Du dann und wenn Du die Verzeichnisse zu oberst haben möchtest, dann stelle ihnen ein Leerzeichen oder "!" voran, das Du nach dem Sortieren wieder entfernst.
Im nächsten Schritt erstellst Du für jedes Verzeichnis ein neues Array, sortierst dieses wie gehabt und fügst es in das "große" Array ein.
freundliche Grüße
Ingo