【发布时间】:2015-02-23 05:35:06
【问题描述】:
我知道我可以按文件类型进行过滤,但是可以按文件大小进行过滤吗?
例如,仅显示 3 兆字节内的图片的 JFileChooser。
【问题讨论】:
-
看看addChoosableFileFilter - 你可以创建一个过滤器,它接受
File作为参数,并返回一个boolean。
标签: java swing file jfilechooser filefilter
我知道我可以按文件类型进行过滤,但是可以按文件大小进行过滤吗?
例如,仅显示 3 兆字节内的图片的 JFileChooser。
【问题讨论】:
File作为参数,并返回一个boolean。
标签: java swing file jfilechooser filefilter
简短的回答应该是,您尝试过什么?长答案是肯定的......
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 的子类。在accept方法中判断文件是否过大。
public boolean accept(File f) {
if(f.length() > maxSize) return false;
return true;
}
然后将过滤器应用到文件选择器
【讨论】: