我有一个简单的JFileChooser以下列方式设置
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("."));
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
chooser.setFileFilter(new FileFilter() {
...
});
int v = chooser.showOpenDialog(this);
if (v == JFileChooser.APPROVE_OPTION) {
File file = chooser.getSelectedFile();
System.out.println(file.getAbsolutePath());
}
如您所见,此FileChooser从当前目录开始,在我的Netbeans项目中,该目录是项目文件夹的根目录。问题在于:当我选择一个文件并打印出绝对路径时,它会在路径中包含"."
。例如,我得到的输出是:
/Users/MyName/Folder1/Folder2/./Temp.xls
当然,这很奇怪,特别是因为我向用户显示了这一点。现在,我可以做hacky并在子字符串处理过程中做一些有趣的事情来摆脱"/./"
部分。但是......是否有一种非懒惰的程序员方法来解决这个问题?提前谢谢!
答案 0 :(得分:29)
使用系统属性“user.dir”,如下所示:
File workingDirectory = new File(System.getProperty("user.dir"));
chooser.setCurrentDirectory(workingDirectory);