Slyh: Verzeichnispfad ist falsch!

Beitrag lesen

Hallo,

ich habe ein Problem! Ich möchte einen Verzeichnisscanner schreiben dabei stieß ich auf Probleme die ich ohne einen Denkanstoß nicht mehr bewältigen werde. Ich möchte mir alle Verzeichnisse und Dateien aus einem angegebenen Verzeichnis in eine Liste einlesen. Dazu habe ich eine instanz von "File" angelegt diese instanz bezieht sich auf "C:/" jetzt kannich mir auch alle Datei- und Verzeichnisnamen ausgeben lassen doch sobald ich diese Namen in einer neuen instanz mit Pfad anzeigen lassen möchte ist bei der Ausgabe nicht der _richtige_ Pfad sondern der Pfad des Arbeitsverzeichnis vor dem Namen.

OK, nachdem ich diesen etwas wirren Satz jetzt 10 mal durchgelesen
habe, glaube ich verstanden zu haben was das Problem ist. :-p

Wie du im Ausgangsposting schriebst, machst du folgendes:

temp = new File(filesInDirectory[i]);

Wenn du dir mal filesInDirectory[i] ausgeben lassen würdest, würdest
du sehen, daß dort nur ein Datei- bzw. Verzeichnisname drinsteht.
Wenn du nun ein neues File-Objekt daraus erstellst, wird dieser
Datei- bzw. Verzeichnisname immer relativ zum aktuellen Arbeits-
verzeichnis interpretiert.

Du willst also stattdessen den Konstruktor File(File parent, String child)
verwenden. Als parent gibst du dein "file"-Objekt an. Als child
dieses filesInDirectory[i].

Da du aber ohnehin aus deinen über "file.list()" ermittelten Dateinamen
wieder File-Objekte bastelst, wäre es vielleicht schlauer, wenn du
stattdessen gleich "file.listFiles()" aufrufen würdest. Dann kriegst
du nämlich gleich File-Objekte zurück.

Das 2. Problem ist das  ich mittels der "isDirectory"-Methode "erfragen" will ob der jetzt gewählte Name eine Verzeichnis ist. Das Problem ist jetzt das diese Abfrage nie "true" ist obwohl der erfragte Name ein Verzeichnis ist.

Folgefehler. Vermutlich existieren die ermittelten Datei- und Verzeichnis-
namen nicht in deinem aktuellen Arbeitsverzeichnis(!). Laut JavaDoc
von "isDirectory()" liefert selbiges aber immer nur "true" zurück,
wenn es sich um ein Verzeichnis handelt, das _existiert_.

"true if and only if the file denoted by this abstract pathname
exists and is a directory; false otherwise"

Mach erstmal den oberen Fehler weg, dann wird auch das untere gehen.

Gruß
Slyh