我试图通过类似的方式在JFilechooser中设置目录路径(使用commons-io):
String fileContents = IOUtils.toString(new FileInputStream("path.txt"));
File theDirectory = new File(fileContents);
filechooser = new JFileChooser();
fileChooser.setCurrentDirectory(theDirectory);
filechooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
我正在使用getCanonicalPath()来获取路径并写入文件path.txt
path = file.getCanonicalPath();
我不打算把我的所有代码放在这里,但我确信程序会写入并读取path.txt中的路径。 我没有收到任何错误,但每次运行程序时,它总是在我的文件夹中打开JFilechooser。我做错了什么?
答案 0 :(得分:22)
尝试直接在构造函数中传递当前目录:
filechooser = new JFileChooser(theDirectory);
答案 1 :(得分:6)
如果您使用默认构造函数(即new JFileChooser()
)咨询API:
构造指向的JFileChooser 用户的默认目录。这个 默认值取决于操作 系统。它通常是“我的 文档“Windows上的文件夹,以及 用户在Unix上的主目录。
这似乎总是打开我的文档,但不是你的问题。事实上,您的问题在于设置当前目录(即setCurrentDirectory(theDirectory)
):
设置当前目录。传入 null将文件选择器设置为指向 用户的默认目录。这个 默认值取决于操作 系统。它通常是“我的 文档“Windows上的文件夹,以及 用户在Unix上的主目录。 如果 以currentDirectory传入的文件是 不是目录,是父的 文件将用作 currentDirectory所。如果父母不是 可穿越,然后它会走了 父树直到找到一个 遍历目录,或点击 文件系统的根目录。
话虽如此,我会关注突出显示的文字,因为您似乎将文件设置为当前目录而不是目录
答案 2 :(得分:1)
选择您打开的最后一个目录:
chooser.setCurrentDirectory(lastDirectory);
int r = chooser.showOpenDialog(new JPanel());
if (r == JFileChooser.APPROVE_OPTION) {
fileName = chooser.getSelectedFile().getPath();
lastDirectory = chooser.getSelectedFile();
}
答案 3 :(得分:1)
JFileChooser Chooser = new JFileChooser(“F:”);
答案 4 :(得分:0)
在你的主要类声明
public static String dirpath=".";
private void btnBrowseActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser jfc = new JFileChooser(dirpath);
dirpath =jfc.getSelectedFile().getAbsolutePath().toString();
}
答案 5 :(得分:0)
如果要更改目录,请使用System.getProperty方法
String s=System.getProperty("user.dir"); // changes directory from documents to the user current Directory;
JFileChooser jfc =新的JFileChooser(s);