JFileChooser - 在当前目录中打开

时间:2014-02-03 18:11:16

标签: java swing jfilechooser

我有一个简单的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并在子字符串处理过程中做一些有趣的事情来摆脱"/./"部分。但是......是否有一种非懒惰的程序员方法来解决这个问题?提前谢谢!

1 个答案:

答案 0 :(得分:29)

使用系统属性“user.dir”,如下所示:

File workingDirectory = new File(System.getProperty("user.dir"));
chooser.setCurrentDirectory(workingDirectory);