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;
}
然后将过滤器应用到您的文件选择器
我知道我可以按文件类型进行过滤,但是否可以按文件大小进行过滤?
例如 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;
}
然后将过滤器应用到您的文件选择器