我想选择所有文件以排除它们在我的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"。*"来选择所有文件。但这并不起作用,我也不知道为什么。 我只想显示目录。
感谢您的帮助!
答案 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,因为它看起来更原生。
非常感谢您的投入!