jfilechooser - 将目录设置为文件中的路径

2022-09-03 12:11:01

我正在尝试通过类似这样的东西(使用commons-io)在JFilechooser中设置目录路径:

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()来获取路径并写入文件路径.txt

path = file.getCanonicalPath();

我不打算把我所有的代码都放在这里,但我确信程序在path.txt中编写和读取路径。我没有收到任何错误,但每次我运行程序时,它总是在我的文档文件夹中打开JFilechooser。我做错了什么?


答案 1

尝试直接在构造函数中传递当前目录:

filechooser = new JFileChooser(theDirectory);

答案 2

如果您查阅 API,请使用默认构造函数(即):new JFileChooser()

构造指向用户默认目录的 JFileChooser。此默认值取决于操作系统。它通常是Windows上的“My Documents”文件夹,以及Unix上的用户主目录。

这似乎解释了为什么总是打开“我的文档”但这不是你的问题。实际上,您的问题在于设置当前目录(即):setCurrentDirectory(theDirectory)

设置当前目录。传入 null 会将文件选择器设置为指向用户的默认目录。此默认值取决于操作系统。它通常是Windows上的“My Documents”文件夹,以及Unix上的用户主目录。如果作为 currentDirectory 传入的文件不是目录,则该文件的父级将用作 currentDirectory。如果父级不可遍历,则它将沿父树向上遍历,直到找到可遍历的目录或命中文件系统的根目录。

话虽如此,我会注意突出显示的文本,因为看起来您正在将文件设置为当前目录而不是目录


推荐