final JFileChooser fc = new JFileChooser();
int returnVal = fc.showOpenDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
String fileName = fc.getSelectedFile().getName();
String path = (new File(fileName)).getAbsolutePath();
}
我得到的绝对路径是项目目录和 fileName 的串联!
答案 0 :(得分:2)
JFileChooser.getSelectedFile()
返回File
个对象。
为什么要获取文件名并再次实例化新的File
对象?
你可以尝试:
fc.getSelectedFile().getAbsolutePath();
答案 1 :(得分:2)
这就是getAbsolutePath()
所做的 - 获取完整路径,包括驱动器号(如果你在Windows上),等等。你想要得到什么,只是文件名?
初始化File
对象后,您只能从中获取文件名,或者您可以使用JFileChooser.getSelectedFile()
如果您收到/path/to/filefilename
但期望/path/to/file/filename
,则可以根据需要在路径中添加额外的斜杠。
答案 2 :(得分:2)
不确定。因为您使用返回的文件名创建了新文件new File(fileName)
,这意味着相对路径。请改用fc.getSelectedFile().getPath()
或fc.getSelectedFile().getAbsolutePath()
。