Я хочу получить размер файла, который я выбираю в мегабайтах, из внутреннего хранилища моего телефона. но file.length () всегда возвращает 0 - PullRequest
0 голосов
/ 03 июля 2019

Я могу выбрать файл типа pdf из внутреннего хранилища моего телефона.Я хочу получить размер файла в мегабайтах и ​​ограничить выбор файла в зависимости от его размера.Но следующий код всегда возвращает 0, хотя файл был успешно выбран.

String uriString = PostFileUri.toString();
File myFile = new File(uriString);
// Get length of file in bytes
long fileSizeInBytes = myFile.length();
// Convert the bytes to Kilobytes (1 KB = 1024 Bytes)
long fileSizeInKB = fileSizeInBytes / 1024;
// Convert the KB to MegaBytes (1 MB = 1024 KBytes)
long fileSizeInMB = fileSizeInKB / 1024;
Log.i("FileSize", String.valueOf(fileSizeInMB));

1 Ответ

0 голосов
/ 03 июля 2019

Возможно, у вас есть 0 , потому что вы не получили существующий файл. Попробуйте это

    File rootStorage = Environment.getExternalStorageDirectory();
    File myFile = new File(rootStorage.toString() + "/download/q1.jpeg");//or whatever  
    long fileSizeInBytes =  myFile.length();
    // Convert the bytes to Kilobytes (1 KB = 1024 Bytes)
    long fileSizeInKB = fileSizeInBytes / 1024;
    // Convert the KB to MegaBytes (1 MB = 1024 KBytes)
    long fileSizeInMB = fileSizeInKB / 1024;
    Log.i("FileSize",String.valueOf(fileSizeInMB));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...