1

使用 NetBeans(java) 我创建了一个带有 JFileChooser 的 JDialog,当我尝试使用 ComboBox 打开一个 lnk 文件夹时(以其他方式工作正常),抛出异常并且该文件夹未打开。我发现这是一个错误:我尝试了一些解决方法,但没有奏效。你能帮助我吗?或者,你能建议我一个“技巧”吗?我想过阻止 JFileChooser(或至少 ComboBox)显示 lnk 文件夹,但我不知道该怎么做。

4

1 回答 1

1

您可以使用Apache CommonsFileFilter中的 a和 theFileUtils来阻止显示符号链接:

JFileChooser fc = new JFileChooser();
fc.setFileFilter(new FileFilter() {

    @Override
    public String getDescription() {
        return "All (without symlinks)";
    }

    @Override
    public boolean accept(File f) {
        try {
            return !FileUtils.isSymlink(f);
        } catch (IOException e) {
            return true; // Maybe to be changed to false depending on
                         // your use case
        }
    }
});

FileSystemView正如@Andrew Thompson 建议的那样,另一种选择是使用 custom 。

编辑:仔细阅读您的问题后,您似乎对过滤 Windows 快捷方式更感兴趣。同样的技术适用:

JFileChooser fc = new JFileChooser();
fc.setFileFilter(new FileFilter() {

    @Override
    public String getDescription() {
        return "All (without shortcuts)";
    }

    @Override
    public boolean accept(File f) {
        return !f.getName().endsWith(".lnk");
    }
});
于 2012-08-29T15:22:56.610 回答