jfilechooser – 将目录设置为文件中的路径
我试图通过这样的东西(使用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()来获取路径并写入文件path.txt
path = file.getCanonicalPath();
我不打算把我的所有代码放在这里,但我确信程序会在path.txt中写入和读取路径。 我没有收到任何错误,但每次运行程序时,它总是在我的文件夹中打开JFilechooser。我做错了什么?
尝试直接在构造函数中传递当前目录:
filechooser = new JFileChooser(theDirectory);
如果您使用默认构造函数(即new JFileChooser()
)来查阅API :
构造一个指向用户默认目录的JFileChooser。 此默认值取决于操作系统。 它通常是Windows上的“My Documents”文件夹,以及Unix上用户的主目录。
这似乎可以解释为什么始终打开我的文档 ,但这不是你的问题。 实际上,您的问题在于设置当前目录 (即setCurrentDirectory(theDirectory)
):
设置当前目录。 传入null会将文件选择器设置为指向用户的默认目录。 此默认值取决于操作系统。 它通常是Windows上的“My Documents”文件夹,以及Unix上用户的主目录。 如果作为currentDirectory传入的文件不是目录,则该文件的父文件将用作currentDirectory。 如果父级不可遍历,那么它将向上遍历父树,直到找到可遍历的目录,或者命中文件系统的根目录。
话虽这么说,我会注意突出显示的文本,因为看起来你将文件设置为当前目录而不是目录 。
要选择您打开的最后一个目录:
chooser.setCurrentDirectory(lastDirectory); int r = chooser.showOpenDialog(new JPanel()); if (r == JFileChooser.APPROVE_OPTION) { fileName = chooser.getSelectedFile().getPath(); lastDirectory = chooser.getSelectedFile(); }
JFileChooser Chooser = new JFileChooser(“F:”);
在你的主类声明
public static String dirpath="."; private void btnBrowseActionPerformed(java.awt.event.ActionEvent evt) { JFileChooser jfc = new JFileChooser(dirpath); dirpath =jfc.getSelectedFile().getAbsolutePath().toString(); }
如果要更改目录,则使用System.getProperty方法
String s=System.getProperty("user.dir"); // changes directory from documents to the user current Directory;
JFileChooser jfc = new JFileChooser(s);