打开文件的最佳方式(并确保选择文件)

时间:2013-08-16 12:56:14

标签: java file-io

我有两个单独的方法来打开文件。

第一个使用带有附加文件类型过滤器的FileChoser。

JFileChooser inFileName = new JFileChooser();
 FileNameExtensionFilter filter = new FileNameExtensionFilter("PCF & TXT Files", "pcf", "txt");

inFileName.setFileFilter(filter);
    Component parent = null;
int returnVal = inFileName.showOpenDialog(parent);`

第二个使用JOptionPane,但有一个循环以确保所选目录存在

String filePath;
File directory;

do{
  filePath = JOptionPane.showInputDialog("please enter directory");
   directory = new File(filePath);

    if (directory.exists()==false){
     JOptionPane.showMessageDialog(null,"error with directory");
    }
 }while(directory.exists()==false);

我希望在这里得到最好的。为了能够选择一个文件,使用文件过滤器并循环该函数,该目录应该无效。

我尝试在不同的地方切换变量名和各种函数,但我似乎无法使循环(“.exists”函数)起作用。

1 个答案:

答案 0 :(得分:0)

您只需修改JFileChooser代码即可使用循环。

JFileChooser inFileName = new JFileChooser();

File file;
boolean valid = false;
while (!valid) {
  int returnVal = inFileName.showOpenDialog(null);
  if (returnVal == JFileChooser.APPROVE_OPTION) {
    file = inFileName.getSelectedFile();
    valid = file.isDirectory();
  else {
    valid = returnVal == JFileChooser.CANCEL_OPTION;
  }
}

值得一提的是,使用这种东西可能会更好;

jFileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);