首页 > 解决方案 > 如何检索从我的图库中选择的图像的文件大小?

问题描述

我已经尝试了所有其他帖子的答案,它们似乎都返回 0.0 作为我的图像的文件大小,这是不可能的。我认为文件路径是导致它返回不正确文件大小的原因。这是我的代码:

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {
            imageUri = data.getData();
            textViewImageAttachmentStatus.setText("File has been attached");
            textViewImageAttachmentStatus.setTextColor(Color.parseColor("#008577"));
            Picasso.get().load(imageUri).into(imageViewPreviewImage);

            String imagePath = imageUri.getPath();
            File imageFile = new File(imagePath);
            long imageSize = imageFile.length() / 1024;
            System.out.println(imageSize);
        }
    }

标签: android

解决方案


更好地使用 Cursor 它非常强大,试试这个

Uri selectedImage = data.getData();
            String[] filePathColumn = {MediaStore.Images.Media.DATA};
            Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
            assert cursor != null;
            cursor.moveToFirst();
            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
            mediaPath1 = cursor.getString(columnIndex);
            cursor.close();
            File file = new File(mediaPath);
            int file_size = Integer.parseInt(String.valueOf(file.length() / 1048576));
            System.out.println(file_size);

推荐阅读