Размер каталога Android - PullRequest
       2

Размер каталога Android

6 голосов
/ 22 ноября 2011

Мне нужно рассчитать физический размер каталога.Наивный алгоритм для этого может быть:

public static long getFolderSize(File dir) {
long size = 0;
for (File file : dir.listFiles()) {
    if (file.isFile()) {
        System.out.println(file.getName() + " " + file.length());
        size += file.length();
    }
    else
        size += getFolderSize(file);
}
return size;
}

но как бороться с символическими ссылками?

Ответы [ 3 ]

1 голос
/ 26 февраля 2012

getCanonicalPath () Обычно это включает удаление избыточных имен, таких как "."и ".." из пути, разрешающего символические ссылки (на платформах UNIX).http://docs.oracle.com/javase/1.4.2/docs/api/java/io/File.html

0 голосов
/ 25 октября 2013

Мое решение первого вопроса - как рассчитать физический размер: Как узнать размер папки на SD-карте в Android?

А вот решение, как обнаружить символические ссылки: Java 1.6 - определить символические ссылки

0 голосов
/ 22 ноября 2011

Вам лучше использовать другой API, чтобы получить размер файла, который API, который имеет отношение к этому, будет

public static long getFolderSize(File dir) {
long size = 0;
for (File file : dir.listFiles()) {
    if (file.isFile()) {
        System.out.println(file.getName() + " " + file.getTotalSpace());
        size += file.getTotalSpace();
    }
    else
        size += getFolderSize(file);
}
return size;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...