Antwort an „Raketenwilli“ verfassen

Gesagt:

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

Getan:

	// Verzeichnisinhalt einsammeln
	$fileInfos = [];
	$rd = new RecursiveIteratorIterator(
			 new RecursiveDirectoryIterator( $dirName )
		  );
    $i=0; $dtos=[];
	foreach ( $rd as $fileInfo ) {
		$fileInfos[$fileInfo ->getPathname()] = $fileInfo;
		$dtos[] = $fileInfo ->getPathname();
	}
	asort( $dtos );
	$dtos = array_reverse( $dtos );
	print_r( $dtos ); exit;

Das liefert dann endlich brauchbares:

    Fund                 # Aktion
    ######################################
    [0] => /tmp/a/c/..   # Ignorieren
    [1] => /tmp/a/c/.    # rmdir /tmp/a/c
    [2] => /tmp/a/b/c    # Löschen
    [3] => /tmp/a/b/b    # Löschen
    [4] => /tmp/a/b/a    # Löschen
    [5] => /tmp/a/b/..   # Ignorieren
    [6] => /tmp/a/b/.    # rmdir /tmp/a/b
    [7] => /tmp/a/a/a a  # Löschen
    [8] => /tmp/a/a/a    # Löschen
    [9] => /tmp/a/a/.a   # Löschen
    [10] => /tmp/a/a/..  # Ignorieren
    [11] => /tmp/a/a/.   # rmdir /tmp/a/a/
    [12] => /tmp/a/..    # Ignorieren
    [13] => /tmp/a/.     # rmdir /tmp/a

Jetzt könnte ich über die sortierten $dtos das richtige Objekt aus $fileInfos rausziehen, ::getFilename() untersuchen, (wenn '..') das Item ignorieren oder (wenn '.') das leere Verzeichnis darunter löschen oder die Datei löschen.

Nur habe ich da ja schon den Dateiname.

Fazit: Der Schatz [RecursiveDirectoryIterator](https://www.php.net/manual/de/class.recursivedirectoryiterator.php) ist einer. Aber halt dann, wenn ich mehr und andere Informationen verarbeiten will - zum Löschen ist dessen Nutzung zu viel Aufwand: Quasi der Versuch, mit einem 1000PS-Traktor und einer riesigen Maschine Nadeln aus einem Heuhaufen zu ziehen, sie dabei zu vermessen und deren Hersteller, Farbe, Material, Härtegrad zu bestimmen - wobei aber doch eigentlich der Heuhaufen nur von Nadeln befreit werden soll... was ein billiger Magnet ratzfatz erledigt.

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