14

我正在使用 Netbeans 7.1.2 创建应用程序,并且正在使用文件选择器,但我不希望文件选择器获取文件,而是希望它返回当前所在目录的完整路径。

文件选择器的外观

当用户单击此处打开时,我希望它返回完整路径而不是文件。我该怎么做呢?

4

6 回答 6

21
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new java.io.File("."));
chooser.setDialogTitle("choosertitle");
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
chooser.setAcceptAllFileFilterUsed(false);

if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
  System.out.println("getCurrentDirectory(): " + chooser.getCurrentDirectory());
  System.out.println("getSelectedFile() : " + chooser.getSelectedFile());
} else {
  System.out.println("No Selection ");
}

来自http://www.java2s.com/Code/Java/Swing-JFC/SelectadirectorywithaJFileChooser.htm

于 2012-05-16T15:27:19.783 回答
3

如果你想知道当前目录:

fileChooser.getCurrentDirectory()

如果要获取选定的文件:

fileChooser.getSelectedFile();

获取文件的绝对路径:

file.getAbsolutePath();

在此处获取有关文件选择器 API 的所有信息。

于 2012-05-16T15:28:19.747 回答
2
File file = fileChooser.getCurrentDirectory();
String fullPath = file.getCanonicalPath(); // or getAbsolutePath()
于 2012-05-16T15:27:26.803 回答
0

设置文件选择器以过滤掉所有非目录文件。

yourFileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
于 2012-05-16T15:30:53.440 回答
0
File f = fileChooser.getCurrentDirectory(); //This will return the directory

File f = fileChooser.getSelectedFile(); //This will return the file

在 netbeans 中,一旦您使用了 JFileChooser 实例旁边的点运算符,自动代码显示(方法显示)工具将提供 JFileChooser 可用方法的完整列表。只需浏览 getter 方法即可找到更多选项,并阅读 netbeans 显示的小型 Javadock。

于 2012-05-16T15:46:53.070 回答
0

在 JDK 1.8(使用 NetBeans 8.0.1)上,这有效:

String path = jOpen.getName(diagOpen.getSelectedFile()); // file's name only

String path = jOpen.getSelectedFile().getPath(); // full path

jOpen 是 jFileChooser。正如 Joachim 所指出的,File 类不会留下任何东西打开或泄露

于 2014-11-28T15:04:21.353 回答