# Pfad für Datei falsch - wie richtig angeben?



## System.exit(0) (3. Jun 2010)

Hallo,

ich bekomme eine FileNotFound Exception und weiß nicht, wie ich den Pfad korrekt angebe.

In der Anlage ist die Verzeichnisstruktur zu sehen.
In der Klasse FileIO wird mit dem Konstruktor der aktuelle Pfad übergeben. Dann wird der Rest des Pfades und der Dateiname angehangen.

ABer irgendwie findet netbeans die Datei nicht.

Hat jemand eine Idee?

gruß

system.exit(0)


```
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws FileNotFoundException, IOException {
        // TODO code application logic here
        GameScreen myScreen = new GameScreen("Defenders for the little ones", 800,600);
        FileIO IO = new FileIO(System.getProperty("user.dir"));
        System.out.println(System.getProperty("user.dir"));
        System.out.println(IO.getText());
        
    }
```


```
public class FileIO
{
    File source;
    String path;

    FileIO(String path)
    {
        this.path = path;
    }

    public char getText() throws FileNotFoundException, IOException
    {
        char temp;
        source = new File(path + "/DAT/Test.txt");
        FileReader leser = new FileReader(source);
        temp = (char) leser.read();
        return 'f';
    }
}
```


----------



## SlaterB (3. Jun 2010)

was kommt denn bei
 System.out.println(System.getProperty("user.dir"));
raus, schon genau angeschaut?

bzw.

> source = new File(path + "/DAT/Test.txt");

->

source = new File(path + "/DAT/Test.txt");
System.out.println("ich suche in "+source.getAbsoluePath()+", "+source.exists());

gegebenenfalls testweise hardcodiert komplette Pfad angeben
source = new File("C:/workspace" ...);
und testen ob es damit geht, genau vergleichen wo der Unterschied besteht,
auch gerne File-Objekte auf Verzeichnisse erstellen, mit listFiles() die enthaltenen Dateien anschauen, deren absolute Pfade wiederum vergleichen usw. 

tausend Dinge möglich, nur machen machen machen


----------



## System.exit(0) (3. Jun 2010)

Hallo SlaterB,

ich erhalte für System.getProperty("user.dir")
H:/Defenders/Defenders

ich werde es mal mit dem ListFiles probieren, um herauszufinden, wo er ist.

mfg

System.exit(0)


----------



## SlaterB (3. Jun 2010)

wo H:/Defenders/Defenders ist, sollte klar sein, nur ist dann der benötigte Pfad vielleicht nicht
H:/Defenders/Defenders/DAT/Test.txt
sondern z.B.
H:/Defenders/Defenders/src/DAT/Test.txt

die Anzeige in Netbeans muss nicht unbedingt stimmen (wobei ich dazu nix genaues sagen kann),
im Dateisystem nachschauen klärt alles oder eben listFiles(), da siehst du dann wirklich, was Java (zur Laufzeit) sieht


----------



## System.exit(0) (3. Jun 2010)

Hallo

ich hatte listFiles() genutzt. ES fehlte tatsächlich das /src/

Danke

Gruß

System.exit(0)


----------



## kevin9r (13. Sep 2016)

Hallo, ich hätte zu dem Thema auch mal eine kurze Frage. Wollte jetzt nicht extra ein neues Thema aufmachen, da es sich um das selbe Problem handelt. 
Ich greife in meinem Programm auf eine Datei zu. Das funktioniert auch alles sehr gut. Wenn ich jetzt eine JAR Datei daraus mache funktioniert dies auch. Nur greife ich über einen absoluten Pfad auf die Datei zu:

loader.loadCSV("C:\\Users\\blabla\\Documents\\abcd.csv",

Allerdings will ich die JAR auch auf einem anderen PC ausführen können, dann müsste ich aber den Pfad dementsprechend anpassen. Ist es auch irgendwie möglich das er die Datei einfach findet wenn Sie den Namen hat und im selben Ordner wie die JAR liegt? loadCSV("abcd.csv") habe ich versucht, das klappt leider nicht. 

Danke!


----------



## JStein52 (13. Sep 2016)

Wenn du keinen absoluten Pfadnamen verwendest wird die Datei ausgehend vom aktuellen Ordner gesucht. Was das ist hängt halt davon ab wie du deine Anwendung (Jar-File) startest. Wenn du auf die Jar-Datei doppelklickst sollte dies eigentlich der Ordner sein in dem sich die Jar-Datei befindet.

Edit: wenn du deine Anwendung aber via Eclipse/NetBeans ausführst ist der Project-Ordner der aktuelle Ordner


----------



## kevin9r (13. Sep 2016)

Ah ok, habe die Datei erstellt und dann über die Konsole gestartet, so hat es nicht geklappt.. da hat er mir ausgegeben, dass er die Datei nicht finden konnte. 
Mit einem Doppelklick klappt es. Super danke!


----------

