Parse Zeile für Zeile und beziehe Dich einfach auf die Paragraphen. Ändert sich deren Anzahl an Elementen, so änderst Du enstsprechend die Ebene Deiner Ordnerstruktur.
1. -> Ebene 1
1.1 -> Ebene 2
1.1.1 -> Ebene 3
1.2 -> Ebene 2
1.3 -> Ebene 2
2. -> Ebene 1
[...]
Erzeuge ein dynamisches Array und speichere dort jeweils das aktuell erzeugte Verzeichnis in dem Index, der zur Ebene passt. Wenn Du eine neue Ebene erzeugen musst, erweiterst Du das Array entsprechend. Gehst Du in den Ebenen zurück, so kannst Du ganz einfach das zuletzt erzeugte Verzeichnis der Vorebene aus dem Array holen und dort drin weiterarbeiten.
Edit:
Habe mal ein kleines Beispiel angehängt. Nicht groß getestet und ohne weiteres
Exception-Handling etc. Soll nur das mögliche Vorgehen verdeutlichen!