java JFileChooser 文件大小过滤器

java JFileChooser File Size Filter

我知道我可以按文件类型进行过滤,但是否可以按文件大小进行过滤?

例如 JFileChooser 只显示 3 MB 以内的图片。

简短的回答应该是,你尝试了什么?长答案是肯定的...

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

    @Override
    public boolean accept(File f) {
        String name = f.getName().toLowerCase();
        return (name.endsWith(".png") &&
                        name.endsWith(".jpg") &&
                        name.endsWith(".gif") &&
                        name.endsWith(".bmp") &&
                        f.length() < 3 * (1024 * 1024));
    }

    @Override
    public String getDescription() {
        return "Images < 3mb";
    }
});

从技术上讲,您可以过滤任何 属性 或 File

中的属性组合

创建 FileFilter 的子class。在accept方法中判断文件是否过大。

public boolean accept(File f) {
    if(f.length() > maxSize) return false;
    return true;
}

然后将过滤器应用到您的文件选择器