Получить размер файла в Android SDK?

У меня проблема с получением размера файла. У меня есть следующий код:

File file = new File("/sdcard/lala.txt");
long length = file.length();

И всегда длина равна нулю, да нулю.

Я использую Android SDK (не знаю, какая версия), код выполняется внутри Activity, я создал SDCard.

Возможно, это проблема с разрешением? Я что-то пропустил?

66 голосов | спросил chinanzio 20 PM00000050000002331 2011, 17:10:23

2 ответа


0

Если вы хотите получить размер папки /файла в КБ или МБ , используйте следующий код. Это поможет найти точный размер вашего файла.

public static String getFolderSizeLabel(File file) {
    long size = getFolderSize(file) / 1024; // Get size and convert bytes into Kb.
    if (size >= 1024) {
        return (size / 1024) + " Mb";
    } else {
        return size + " Kb";
    }
}

Эта функция вернет размер в виде байтов:

public static long getFolderSize(File file) {
    long size = 0;
    if (file.isDirectory()) {
        for (File child : file.listFiles()) {    
            size += getFolderSize(child);
        }
    } else {
        size = file.length();
    }
    return size;
}   
ответил Pir Fahim Shah 9 Maypm14 2014, 12:27:40
0

Вы должны использовать:

File file = new File(Uri.parse("/sdcard/lala.txt").getPath());

вместо:

File file = new File("/sdcard/lala.txt");
ответил KAMAL VERMA 27 FebruaryEurope/MoscowbSat, 27 Feb 2016 15:58:54 +0300000000pmSat, 27 Feb 2016 15:58:54 +030016 2016, 15:58:54

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132