限制打开的最大文件大小

时间:2018-11-05 09:29:32

标签: java javafx

我打开图片。

@Override
    public void onWindowFocusChanged(boolean hasFocus) {
       if(hasfocus){
          SharedPreferences sharedPreferences = getSharedPreferences("myData", Context.MODE_PRIVATE);
          boolean isChecked = sharedPreferences.getBoolean("checkboxes", defaultMethod);

             if(isChecked){
                  allcheckbox.setChecked(true);
                }
           }
        super.onWindowFocusChanged(hasFocus);
    }

如何限制打开的图像不超过1 mb?

2 个答案:

答案 0 :(得分:1)

快速解决方案,具体取决于您的方法: 创建文件过滤器,然后将其与FileChooser一起使用:

FileFilter myFilter = new FileFilter() {
    @Override
    public boolean accept(File file) {
        javax.swing.filechooser.FileFilter ef = 
            new FileNameExtensionFilter("Image Files", "*.png", "*.jpg", "*.gif", "*.bmp", "*.jpeg");
        return ef.accept(file) && (file.length() <= (1024L * 1024L));
    }
};
fileChooser.setFileFilter(myFilter);

一个更详尽的示例是在单独的类中定义文件过滤器:

public class MaxSizeFileFilter implements FileFilter {
  private final static long MAX_SIZE = (1024L * 1024L);
  private final static String SUFFIX_REGEX = ".*\\.(png|jpg|gif|bmp|jpeg)";

  @Override
  public boolean accept(File file) {
    try {
        return file != null &&
            file.isFile() &&
            file.canRead() &&
            file.getName().matches(SUFFIX_REGEX) &&
            file.length() <= MAX_SIZE;
    }
    catch (SecurityException exc) {
        System.err.println(exc.getMessage());
        return false;
    }
  }
}

答案 1 :(得分:0)

我不熟悉File类,但是documentation似乎建议getTotalSpace方法返回文件大小(以字节为单位)。

如果这是正确的,那么您可以将mb的大小与1024进行比较,如果超过此大小则将其拒绝。

一个粗略的例子。

Expires=0