Rekursion statt "Tiefe" in die "Breite"
Hallo,
ich möchte Ordner "rekursiv" durchlaufen.
Anstelle von "in die Tiefe" möchte ich aber das ganze "in der Breite" durchlaufen
beispielstruktur
OrdnerA => SubA => SubSubA => SubSubSubA
OrdnerB => SubB => SubSubB => SubSubSubB
OrdnerC => SubC => SubSubC => SubSubSubC
wenn ich jetzt den Aufruf mache, geb mir Unterordner von Root, kommt eine Liste mit OrdnerA, OrdnerB, OrdnerC
wenn ich diese Liste durchlaufe, kann ich immer gleich in den Unterordner "rekursiv" springen, d.h. ich laufe in die Tiefe zuerst OrdnerA mit Subordner durch, dann OrdnerB,...
jetzt will ich aber "Ebene" für "Ebene" durchlaufen...
Also zuerst OrdnerA, dann OrdnerB, dann OrdnerC, dann Unterordner aus OrdnerA (SubA) dann Unterordner aus OrdnerB (SubB)...
irgendwie denk ich da falsch, aber immer wenn ich den Rekursiven ansatz mache, durchlaufe ich immer den Ersten Ordner in die Maximale Tiefe, bis ich dann mit dem 2. Ordner anfange usw...
Vielen Dank für jeden Tipp
ich möchte Ordner "rekursiv" durchlaufen.
Anstelle von "in die Tiefe" möchte ich aber das ganze "in der Breite" durchlaufen
beispielstruktur
OrdnerA => SubA => SubSubA => SubSubSubA
OrdnerB => SubB => SubSubB => SubSubSubB
OrdnerC => SubC => SubSubC => SubSubSubC
wenn ich jetzt den Aufruf mache, geb mir Unterordner von Root, kommt eine Liste mit OrdnerA, OrdnerB, OrdnerC
wenn ich diese Liste durchlaufe, kann ich immer gleich in den Unterordner "rekursiv" springen, d.h. ich laufe in die Tiefe zuerst OrdnerA mit Subordner durch, dann OrdnerB,...
jetzt will ich aber "Ebene" für "Ebene" durchlaufen...
Also zuerst OrdnerA, dann OrdnerB, dann OrdnerC, dann Unterordner aus OrdnerA (SubA) dann Unterordner aus OrdnerB (SubB)...
irgendwie denk ich da falsch, aber immer wenn ich den Rekursiven ansatz mache, durchlaufe ich immer den Ersten Ordner in die Maximale Tiefe, bis ich dann mit dem 2. Ordner anfange usw...
Vielen Dank für jeden Tipp
der sematische Aufbau sieht etwa so aus
function durchsucheOrdner( Hauptordner ) {
foreach( alle Ordner durchlaufen ) {
if( Unterordner vorhanden )
durchsucheOrdner( Unterordner );
}
}
durchsucheOrdner( "root" );
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 351802
Url: https://administrator.de/forum/rekursion-statt-tiefe-in-die-breite-351802.html
Ausgedruckt am: 22.12.2024 um 23:12 Uhr
6 Kommentare
Neuester Kommentar
Moin,
das hängt davon ab was, wie und wo Du das machst...
Sprechen wir hier von Skripten oder Programmieren?
Standardmäßig geht rekursiv eigentlich immer erst den ersten Ordner durch.
Man kann das aber natürlich selber anders programmieren.
Du schreibst Die Ordner in eine Todo-Liste. Damit erreichst Du den gewünschten Effekt.
Stefan
das hängt davon ab was, wie und wo Du das machst...
Sprechen wir hier von Skripten oder Programmieren?
Standardmäßig geht rekursiv eigentlich immer erst den ersten Ordner durch.
Man kann das aber natürlich selber anders programmieren.
Du schreibst Die Ordner in eine Todo-Liste. Damit erreichst Du den gewünschten Effekt.
Stefan
Hallo,
ah, nicht gesehen.
Ich wollte damit sagen, dass man einem Befehl in der Shell das nicht so einfach beibringen kann.
/r ist halt einfach /r
Ungefähr so
ah, nicht gesehen.
Ich wollte damit sagen, dass man einem Befehl in der Shell das nicht so einfach beibringen kann.
/r ist halt einfach /r
Ungefähr so
function durchsucheOrdner() {
foreach( alle Ordner in der Todo Liste ) {
if( Unterordner vorhanden )
FuegeOrdnerZurTodoListeHinzu( Unterordner );
}
}
FuegeOrdnerZurTodoListeHinzu( "root" );
durchsucheOrdner();