Antwort an „tk“ verfassen

Moin,

Gesagt:

Einen Parameter oder eine Methode zum Sortieren hab ich nicht gefunden, die müsste geschrieben werden

Getan: […]

das geht auch einfacher: RecursiveIteratorIterator und RecursiveDirectoryIterator kennen ganz nützliche Flags als zweiten Parameter im Konstruktor. Wenn man über dein mit exec angelegtes Testverzeichnis den Code:

new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator(
        '/tmp/a',
        FilesystemIterator::SKIP_DOTS
    ),
    RecursiveIteratorIterator::CHILD_FIRST
);

laufen lässt, bekommt man als Ausgabe von getPathname() diese Liste der Verzeichnisse und Dateien:

0: /tmp/a/b/b
1: /tmp/a/b/c
2: /tmp/a/b/a
3: /tmp/a/b
4: /tmp/a/c
5: /tmp/a/a/a a
6: /tmp/a/a/.a
7: /tmp/a/a/a
8: /tmp/a/a

Die Einträge sind dann gleich so sortiert dass man jeden Eintrag einfach löschen kann, wenn man zum Elternverzeichnis kommt, ist dieses bereits leer – nur /tmp/a selbst bleibt dann noch übrig.

Gruß
Tobias

freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar

Ihre Identität in einem Cookie zu speichern erlaubt es Ihnen, Ihre Beiträge zu editieren. Außerdem müssen Sie dann bei neuen Beiträgen nicht mehr die Felder Name, E-Mail und Homepage ausfüllen.

abbrechen