JFileChooser getCurrentDirectory возвращает неправильный текущий каталог?

Я использую JFileChooser в приложении для поиска каталога, однако, когда я выбираю каталог, он возвращает путь к папке над выбранной мной папкой. то есть я выбираю "C:\Test" и возвращает "C:\"

Вот код, который я использую

            JFileChooser c = new JFileChooser();
            c.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
            int rVal = c.showSaveDialog(c);
            if (rVal == JFileChooser.APPROVE_OPTION) {
                txtDirectory.setText("");
                CC_Test.MsgBox(c.getCurrentDirectory().toString());
                txtDirectory.setText(c.getCurrentDirectory().toString());
            }
            if (rVal == JFileChooser.CANCEL_OPTION) {
                txtDirectory.setText("");
            }

person Talon06    schedule 06.01.2012    source источник


Ответы (3)


Вы должны использовать

c.getSelectedFile()

вместо

c.getCurrentDirectory()

чтобы получить выбранный файл (в данном случае каталог). В противном случае он дает каталог, который показан на панели выбора файлов (который является родителем), а не тот, который выбран.

person Howard    schedule 06.01.2012

Для получения выбранного файла или каталога используйте:

c.getSelectedFile();

Если вы используете

c.getCurrentDirectory();

отдача зависит от операционной системы.

person evanwong    schedule 06.01.2012

Вы должны использовать JFileChooser.getSelectedFile(). Класс File предназначен как для каталогов, так и для файлов.

person Stas Jaro    schedule 06.01.2012