如何 select FileDialog 中的所有文件?

How to select all files in a FileDialog?

我想select所有文件以防止它们显示在我的 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);

在我的代码中,您可以看到,我正在尝试使用字符串“.*”,select 所有文件。但是这不起作用,我不知道为什么。 我只想显示目录。

感谢您的帮助!

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

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

FileDialog 的 FileFilter 的工作方式应该类似。另请注意 FileDialog's setFileFilter 方法的 API:

"Filename filters do not function in Sun's reference implementation for Microsoft Windows."

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

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

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

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

非常感谢您的意见!