JFileChooser getCurrentDirectory返回错误的当前目录?

时间:2012-01-06 19:45:36

标签: java swing jfilechooser

我在应用程序中使用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("");
            }

3 个答案:

答案 0 :(得分:15)

你应该使用

c.getSelectedFile()

而不是

c.getCurrentDirectory()

以获取所选文件(在本例中为aka目录)。否则它会生成filechooser面板(父项)中显示的目录,而不是选中的目录。

答案 1 :(得分:3)

要获取所选文件或目录,请使用:

c.getSelectedFile();

如果您使用

c.getCurrentDirectory();

返回取决于操作系统。

答案 2 :(得分:3)

您必须使用JFileChooser.getSelectedFile()File类适用于目录和文件。