Christian Seiler: Das System kann die Datei nicht finden

Beitrag lesen

Hallo,

Die Datei existiert 100%. Mit absoluten Pfad wird die Datei gefunden, mit relativen nicht. Hier ist ein Beispiel:

###############################################
File datei = new File("ordner/datei.txt");
System.out.println(datei.exists());                  //false
###############################################

És geht auch nicht, wenn ich die Datei in den Ordner lege, wo auch die Klasse selbst ist (new File("datei.txt")).

Nunja, das kann daran liegen, dass Du die Klasse nicht in dem gleichen Verzeichnis ausführst, in dem sie auch liegt.

Beispiel:

In /home/christian/tmp/java liegt eine Datei "dateia.class" die eben Deinen Code new File ("datei.txt") macht und dann ausgibt, ob sie existiert.

Führe ich in /home/christian/tmp/java folgenden Befehl aus:

java dateia

Dann erhalte ich:

true

als Ausgabe (d.h. die Datei existiert). Führe ich dagegen IRGENDWO anders (d.h. in einem anderen Verzeichnis) folgenden Befehl aus:

java -cp /home/christian/tmp/java dateia

dann erhalte ich:

false

als Ausgabe.

Führe doch mal folgenden Code aus:

System.out.println (new File (".").getCanonicalPath ());

Das gibt Dir aus, in welchem Verzeichnis Du Dich befindest, wenn Du Deine Java-Datei ausführst. Alle Pfade müssen relativ zu DEM Verzeichnis sein (oder Du musst vor der Java-Ausführung das Verzeichnis wechseln).

Viele Grüße,
Christian