2017-05-02 4 views
0

Es gibt ein JFileChooser-Dialogfeld, in dem ein Benutzer nach einem Speicherort sucht, der seine Konfigurationsdatei enthält. Ich möchte diesen Speicherort als Arbeitsverzeichnis abrufen, aber System.getProperty("user.dir") scheint auf den Speicherort der Anwendung zu zeigen. Wie kann ich das beheben?Abrufen des Arbeitsverzeichnisses mit JFileChooser

Angenommen

D:\netbean\projects\test 

dass dort, wo der Start der Anwendung ist. Dann klickt der Benutzer auf eine Schaltfläche und wechseln Sie zu

D:\configs 

Der Code aussehen wie

File selectedFile = fc.getSelectedFile(); 
myTextArea.setText("Working directory is " + System.getProperty("user.dir") + "\n"); 

, die auf netbeans Ordner verweist, die in meinem Fall falsch ist.

Antwort

3

System.getProperty("user.dir") ist eine zur Laufzeit definierte Systemeigenschaft, die das Verzeichnis ist, in dem die JVM ausgeführt wurde.
Es hat keine Beziehung mit dem Verzeichnis, das die in einer JFileChooser ausgewählte Datei enthält.

Sie können die getParentFile() Methode der File verwenden Sie den Ordner abzurufen, die die Datei enthält, die vom Benutzer ausgewählt wurde:

File selectedFile = fc.getSelectedFile(); 
myTextArea.setText("Parent directory is " + selectedFile.getParentFile() + "\n"); 
+0

Entschuldigung finden Sie in der Update-Post für eine kleine Frage, dass im Zusammenhang. – mahmood

+0

Gern geschehen. Ich werde die Antwort nicht bearbeiten, sonst könnte sie die Frage und die Antwort nicht wiederverwendbar machen. Ich werde per Kommentar im nächsten Kommentar antworten. Fühlen Sie sich frei, eine neue Frage zu diesem neuen Bedürfnis zu öffnen, wenn meine Antwort nicht genug ist. Möchten Sie, dass der letzte Ort für die laufende Anwendung oder für die nächste laufende Anwendung gespeichert wird (echte persistente Daten)? – davidxxx

Verwandte Themen