file.length在android中总是返回0

时间:2017-05-26 05:38:00

标签: android file

我想查看只有URI File file=new File(uri.getPath()); long ls = file.length(); 的文件大小 获取我使用的文件大小:

{{1}}

总是得到0.任何想法?

2 个答案:

答案 0 :(得分:3)

尝试下面的代码来获取文件的长度

 Cursor returnCursor =
                getContentResolver().query(uri, null, null, null, null);
        int sizeIndex = returnCursor.getColumnIndex(OpenableColumns.SIZE);
        returnCursor.moveToFirst();
        int size = (int) returnCursor.getLong(sizeIndex);

答案 1 :(得分:2)

试试这个,

String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = context.getContentResolver().query(uri, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex);
cursor.close();

File file = new File(filePath);
long ls = file.length();