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

时间:2011-04-19 19:19:36

标签: java swing jfilechooser

我试图通过类似的方式在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。我做错了什么?

6 个答案:

答案 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);