JFileChooser返回FileNotFoundException

时间:2013-04-19 15:59:25

标签: java swing filenotfoundexception jfilechooser

更具体地说,它确实有效,但只有当我选择存在于我的程序及其资源所在的源文件夹中的文件时。当我将文件移动到桌面或“我的文档”并尝试从那里阅读时,我得到FileNotFoundException

这是我的代码:

private void btnBrowseFileActionPerformed(java.awt.event.ActionEvent evt) {                                              
    JFileChooser myFileChooser = new JFileChooser();
    int rVal = myFileChooser.showOpenDialog(Singlelayer.this);
    if (rVal == JFileChooser.APPROVE_OPTION) {
        txtFile.setText(myFileChooser.getSelectedFile().getName());
    }
}

如您所见,它附加到“浏览...”按钮,因此它是GUI的一部分。但这不是重点。

它不适用于与其他源文件不在项目文件夹中的任何文件。不完全确定发生了什么,但任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

您正在使用文件名:

txtFile.setText(myFileChooser.getSelectedFile().getName());

返回文件名。因此它只识别源文件夹中的文件。

相反,您应该使用file path

答案 1 :(得分:0)

你需要使用由myFileChooser.getSelectedFile()语句返回的File类对象的getPath()。

eg
  File file = myFileChooser.getSelectedFile();
  String path = file.getPath();
  String name = file.getName();

现在使用这些路径,命名变量。