2015-02-23 80 views
0

我知道我可以按文件类型制作过滤器,但可以按文件大小进行过滤吗?java JFileChooser文件大小过滤器

例如JFileChooser只显示3兆字节以内的图片。

+0

看一看[addChoosableFileFilter(http://docs.oracle.com/javase/7/docs/api/javax/swing/JFileChooser。 html#addChoosableFileFilter%28javax.swing.filechooser.FileFilter%29) - 您可以创建一个将'File'作为参数并返回一个'boolean'的过滤器。 – 2015-02-23 05:40:48

回答

2

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

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

+0

非常感谢! – joepa37 2015-02-23 05:51:29

1

创建一个子类的FileFilter的。在接受方法中,决定文件是否过大。

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

然后过滤器适用于您的文件选择