将JFileChooser设置为打开当前目录

时间:2011-10-15 21:53:44

标签: java file swing jfilechooser

我创建了一个JFileChooser来打开一个文件,但是当我选择一个文件并打开它时,第二次我要选择一个文件时,JFileChooser不在当前目录中。 如何设置JFileChooser打开当前目录?

JFileChooser fileChooser = new JFileChooser();
        fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES );
         fileChooser.setDialogType(JFileChooser.SAVE_DIALOG);
         int result = fileChooser.showOpenDialog( this );
         if ( result == JFileChooser.APPROVE_OPTION ){
              File fileName = fileChooser.getSelectedFile();
              File path=fileChooser.getCurrentDirectory();
              if ( ( fileName == null ) || ( fileName.getName().equals( "" ) ) )
              {
                 JOptionPane.showMessageDialog( this, "Invalid File Name",
                    "Invalid File Name", JOptionPane.ERROR_MESSAGE );
              }
              else{
               currentPath=path.getPath()+"\\"+fileName.getName();}
             } 

2 个答案:

答案 0 :(得分:12)

通过File参数将目录传递到the constructorFile也可以是目录,FYI),或者在制作之前使用.setCurrentDirectory(File dir)方法JFileChooser可见。

另外,要使JFileChooser保持在同一文件夹中,您需要保存上次选择的文件/目录的文件夹,并使用THAT值来控制它在后续时间通过{{1}启动的文件夹}

答案 1 :(得分:3)

使选择器成为类级别属性并仅创建一次。这样,它不仅指向关闭时的位置,还会选择相同的大小,位置,文件过滤器等。