如何选择FileDialog中的所有文件?

时间:2015-04-24 17:52:39

标签: java linux awt filedialog

我想选择所有文件以排除它们在我的FileDialog中显示。

        FileDialog fileDialog = new FileDialog(this, "Some Title", FileDialog.LOAD);
    fileDialog.setFilenameFilter(new FilenameFilter() {
        @Override
        public boolean accept(File dir, String name) {
            if(name.endsWith(".*")) {
                return false;
            }else {
                return true;
            }
        }
    });
    fileDialog.setVisible(true);

在我的代码中,您可以看到,我正在尝试使用String"。*"来选择所有文件。但这并不起作用,我也不知道为什么。 我只想显示目录。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您可以使用JFileChooser,使用FileFilter检查File对象以查看它是否是目录

  @Override
  public boolean accept( File file ) {
    return file.isDirectory();
  }

FileDialog的FileFilter应该可以正常工作。另请注意FileDialog's setFileFilter方法的API:

  

"文件名过滤器在Sun的Microsoft Windows参考实现中不起作用。"

答案 1 :(得分:0)

如前所述,我在@JigarJoshi的帮助下找到了这个问题的答案。

这是在AWT FileDialog上显示ONLY目录的工作代码:

fileDialog.setFilenameFilter(new FilenameFilter() {
    @Override
    public boolean accept(File dir, String name) {
        return dir.isFile();
    }
});

请注意,如果您使用的是非Windows系统,则仅建议在JFileChooser上使用FileDialog。但是在Mac和Linux上,您应该更喜欢使用FileDialog,因为它看起来更原生。

非常感谢您的投入!