JFileChooser wählt Ordner als Dateinamen

Kazar

Grünschnabel
Ich habe nun einige Zeit damit verbracht im Internet nach einer Lösung für mein Problem zu suchen, dies aber bis jetzt erfolglos. Ich hoffe ihr könnt mir weiter helfen.

mein Problem ist das ich ein JFileChooser erstelle und dieser soll sowohl dateien sowie Verzeichnisse anwählen können. Es soll möglich sein den JFileChooser zu schliessen in dem man entweder eine datei angewählt hat oder aber nur ein Verzeichnis (wo dann eben die neue Datei abgespeiert werden soll).
Mit der Auswahl einer Datei gibt es soweit keine Probleme das Funktiniert wunderbar und ich bekomme den ganzen Pfad inklusive der Dateiname vom JFileChooser geliefert.
Wenn man aber nun ein Verzeichnis anwählen will dann wird der letzte geklickte Ordner als Dateiname angenommen, was dann zu unliebsamen Pfadrückgabewerten führt.
Dabei wird der Pfad angegeben in Form von z.B: C:\Ordner1\Ordner2\Ordner2. also wird der letzte Ordner zuerst als Pfad geschrieben und dann nochmals als Dateiname angehängt

ich weiss das man mit .getCurrentDirectory() nur den Pfad auslesen kann aber ich habe dann wenn ich ein Pfad auslesen will natürlich "schrott" in meinem Filenamen und ich hätte da gerne das ich einfach nichts zurück bekomme so keine Datei angewählt wurde.
ist sowas möglich oder ist der FileChosser einfach dafür nicht gedacht? :rolleyes:

hier ein zusammengekürze Version meines Codes:
Code:
  String path = "";
  JFileChooser chooser = new JFileChooser();
  JTextField pathTf. = new JTextField();
  JTextField fileNameTf. = new JTextField();  

  chooser.setFileFilter(new CsvFilter());
  chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
  chooser.setMultiSelectionEnabled(false);

   if (chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
                path = path+chooser.getCurrentDirectory();
                logger.info(path);
                pathTf.setText(path);
                fileNameTf.setText(chooser.getName(chooser.getSelectedFile()));
    }


auserdem ist es im Moment auch nicht möglich gleich das erste aufgerufene Verzeichnis des JFileChoosers als Verzeichnis zu "öffnen" erst wenn man irgend ein Ordner angewählt hat (und der als Dateiname drin streht) kann man den JFileChooser erfolgreich beenden

Ich hoffe man hat verstanden was das Problem ist :rolleyes:
 
neija, ein FileChooser ist eben dafür gedacht, Dateien auszuwählen und keine Verzeichnisse, allersings muss es dafür auch etwas geben, das kennt man ja auch Installationsprogrammen, wirf doch mal einen Blick in die Doku, meist stolpert man dann über etwas passendes.
 
jau das er FileChooser heisst weil er in erster Linie für die auswahl von Files gemacht wurde ist mir durchaus klar. jedoch kann man ihn ja mit

chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); in einen guten Verzeichnis wähler verwandeln dies Funktioniert auch einwandfrei. genau das gleich gilt wenn man ihn für eine bestimmen Typ von Datei auslegt geht auch alles wunderbar nur eben die combination von beidem scheint nicht ganz 100% zu funktionieren oder nicht so wie ich es mir vorstelle.
 
Zurück