Android: как использовать устройство хранения данных приложением

У меня есть приложение, которому создали каталог в SDCard, где я сохраняю фотографии. Я хотел бы знать, сколько пространства использует тот dir на SDCard, чтобы показать что информация пользователю.

1
задан Nicolás Ozimica 26 April 2011 в 19:51
поделиться

1 ответ

Я не уверен, что это лучшее решение, но вы могли бы сделать что-то вроде этого:

int totalSize = 0;
File root = new File("path to one of your file").getParentFile();
File[] files = root.listFiles();
for (File file: files) {
   totalSize = totalSize + file.length();
}

Тогда totalSize содержит сумму всех файлов в каталоге в байтах. в зависимости от структуры вашего каталога (например, есть ли какие-либо подкаталоги?) вы должны адаптировать код.

Изменить: После небольшого исследования я почти уверен, что в java нет метода, который напрямую возвращает размер каталога. См., Например, эта ссылка: http://forums.sun.com/thread.jspa?threadID=640296

Однако в этой ссылке http://www.codemiles.com/java/get-directory-size-in- java-t1242.html есть рекурсивная версия моего кода, упомянутого выше, для вычисления любых подкаталогов, если они доступны.

Существует также небольшая библиотека, которая может делать то, что вы хотите:

http://commons.apache.org/io/api-release/index.html

Однако затем вам придется импортировать эту библиотеку. Я лично предпочел бы написать этот короткий метод самостоятельно.

2
ответ дан 3 September 2019 в 00:18
поделиться
Другие вопросы по тегам:

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