JFileChooser gibt nur unvollständigen Pfad zurück

xor

Grünschnabel
Hallo zusammen,

ich habe ein Problem, bei dem mir langsam die Ideen ausgehen. Ich möchte ein simples Programm schreiben, bei dem der Benutzer durch klicken auf einen Button ein Verzeichnis wählen kann und dann alle Dateien aus diesem Verzeichnis in einer JList angezeigt bekommt. Zum auswählen des Verzeichnisses benutze ich einen JFileChooser Dialog. Mein Problem damit ist, dass er mir beim Aufruf von (fc ist mein FileChooser)

String currDir = fc.getCurrentDirectory().toString();

nur einen Teil des Pfads zurückgibt. Ich wähle zB. den Ordner "D:\Bilder\Wallpaper" im FileChooser aus, zurück bekomme ich aber lediglich "D:\Bilder".

Hier ist der Code den ich benutze:
------------------------------------------------------------------------------------------------------------
void browseButton_actionPerformed(ActionEvent e){

JFileChooser fc = new JFileChooser();
fc.setDialogTitle("Select folder");
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

if(fc.showOpenDialog(null)==JFileChooser.APPROVE_OPTION){
//get file-listing from folder
}

}
-----------------------------------------------------------------------------------------------------------

gruss

xor
 
Hallo xor,

habe zwar noch nicht intensiver mit dem FileChoser gearbeitet, aber meine Vermutung wäre, dass der fc eigentlich auf Files ausgelegt ist...:eek:
Wenn du also ein File auswählen würdest, wäre für diese Klasse alles vor dem letzten Backslash der Pfad - hieße, er lässt immer den letzten Teil deines Verzeichnispfades weg.

Mach's so:
Code:
String currDir = fc.getSelectedFile().getAbsolutePath();
Das geht :)
Kannst auch noch das File auf isDirectory abfragen, wenn du das brauchst.
 
Danke für den Tip, allerdings gibt es damit ein Problem. Wenn der Benutzer nur ein Verzeichnis auswählen soll, wäre es unkomfortabel wenn er jedesmal trotzdem eine Datei anklicken muss.
Das was du sagst mit dem Pfad und das er das letzte weglässt, erscheint mir einleuchtend, aber es muss doch einen anderen weg geben mit dem man nur Verzeichnisse auswählen kann.

xor
 
Nein nein, ich habe das so mit deinem Quelltext ausprobiert und es geht auch mit Verzeichnissen, wenn du nur die eine Zeile so schreibst. :)
 
Zurück