2017-01-03 2 views
1

Ich möchte rekursiv ein Verzeichnis rückwärts gehen, bis ich einen bestimmten übergeordneten Ordner finde.Java; gehe zurück in einen Dateibaum, bis ein bestimmter Ordner

Im Grunde, was ich bin nach ist

while (!child.getParentFile().equals(greatGrandparent)) { 
     // keep going backwards until it does 
    } 

Wo child 10 sein könnte, 20, 50 Stufen unterhalb greatGrandparent

Alles, was ich sagen will, ist Online finden starten und Großeltern und prüfen Sie jedes Kind bis Ich finde das Kind, nach dem ich suche, aber es könnte eine Million Kinder unter den Großeltern geben, und ich möchte sie nicht alle überprüfen, wenn ich weiß, dass ich einfach wieder zum Baum gehen muss, wenn das Sinn macht.

Gibt es ein Standardmuster dafür?

+0

Wollen Sie weitermachen, bis Eltern und Großeltern gleich sind? So sieht der Code aus .. –

Antwort

1

Was mit

while (!child.getParentFile().equals(greatGrandparent)) { 
    child = child.getParentFile(); 
} 
+0

Ugh, du hast Recht. Gehirnfurz! –

0

falsch Klingt wie Sie einfach diese suchen:

while (!child.getParentFile().equals(greatGrandparent)) { 
    child = child.getParentFile(); 
} 

Wenn dies nicht das, was Sie suchen, werden Sie Ihr Problem besser erklären müssen.

Verwandte Themen