使用JFileChooser获取目录中的所有文件名?

5
我正在使用这段代码:

 fileBrowser() {
      String toReturn = null;
      JFileChooser Chooser = new JFileChooser();
      int choosen = Chooser.showOpenDialog(fileBrowser.this);
      if (choosen == JFileChooser.APPROVE_OPTION) {         
            System.out.println(Chooser.getCurrentDirectory().toString()+"\\"+Chooser.getSelectedFile().getName());
      }

  }

要获取所选文件的名称和位置,这都可以很好地完成。我想知道是否还有一种方法可以获取该目录中的所有文件名?类似于 .getAllFiles()。我已经搜索过了,但找不到这样的方法?
提前感谢。
2个回答

8
当然,可以使用。
File[] filesInDirectory = chooser.getCurrentDirectory().listFiles();

然后,您可以对该数组进行迭代:
for ( File file : filesInDirectory ) {
    System.out.println(file.getName());
}

2
使用list()不是更容易吗?因为OP只是在寻找文件名。 - mre
谢谢,我已经使用了list()和上面的建议,正是我想要的,非常感谢! - James MV
@Крысa:如果这就是他想做的全部(根据他对“文件名”的定义),那么是的。但是通常你实际上希望在某个时候与File对象交互,我试图引导OP远离使用字符串中介。我的首选是坚持使用真实对象,直到到达呈现的时候。另外,如果他确实想要过滤掉目录,那么使用FileFilterFilenameFilter更加清晰,并且只适用于listFiles() - Mark Peters

4

嗯,有一个File.list()方法。它会按照文件名列出指定目录(即File)中的所有文件。但是这也会返回目录名。为了规避这个问题,使用另一个File.list(FilenameFilter filter)方法,它可以使你从列表中过滤掉目录。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接