Java Directory Tree Hilfe?

1 Antwort

Wenn mir hier jemand vielleicht erklären könnte, was für eine Struktur hier herrscht wäre ich sehr dankbar.

Du meinst das Ergebnis des main-Methode in Programm 2? Auf oberster Ebene sollen zwei Dateien angelegt (a, c) werden sowie ein Ordner dirOne, der wiederum eine Datei b aufnehmen soll. Verfolge dazu einfach nur die Anweisungen. Die Namen der Methoden sagen dir bereits, was sie tun sollen.

Insgesamt wird eine Baumstruktur kreiert.

Ich verstehe nicht was ich mit dem Stringbuffer und der Liste machen soll (...)

Der StringBuffer soll sicherlich den Inhalt einer Datei aufnehmen, wenn man sie einliest. Deshalb heißt das Feld auch contents.

Die Liste in der Klasse Directory wiederum dient dazu, alle Subverzeichnisse und Dateien im Verzeichnis zu speichern. Wenn du also im Baum ein neues Verzeichnis oder eine neue Datei anlegst, sollte das übergeordnete Verzeichnis die Referenz auf das neue Verzeichnis / die neue Datei in ihrer Liste aufnehmen.

(...) und wofür ich die Konstante SEPERATOR brauche.

Angenommen, es soll einmal die komplette Pfadangabe zu einer bestimmten Datei oder einen bestimmten Ordner ausgeliefert werden. Dann wäre der Separator das Bindeglied der einzelnen Knotennamen.

(...) warum oben im Code ein Directory deklariert wird mit null und SEPERATOR als parameter. (...)

Vermutlich soll das erste Argument das Elternverzeichnis definieren. Da das Wurzelelement allerdings kein Elternverzeichnis besitzt, ist es null.

Wie könnte jetzt ein Konstruktor dafür aussehen

Zuerst kannst du dich natürlich an dem Aufruf orientieren, den du in DirectoryTree siehst. Da du (nun) die übergebenen Argumente kennst (sowie ihre Typen), sollte klar sein, welche Parameterliste du brauchst.

Anschließend könnte man eventuell noch weitere Konstruktoren anlegen, um beispielsweise gleich von Anfang an den Namen des Verzeichnisses festlegen zu können.

(...) und brauche ich auch Kosntruktoren für Node und File?

Trage einmal alle Eigenschaften dieser Klassen zusammen und bewerte, wie existentiell wichtig sie für ein Objekt dieser Typen sind. Wenn es keines gibt, brauchst du keinen Konstruktor.

Vergleiche dazu mit der Directory-Klasse. Bei der siehst du z.B., dass es ein Elternverzeichnis geben muss, aber der Name auch später gesetzt werden kann.