Как определить, сколько свободного места осталось на SD карте или во внутренней памяти Android девайса

Если вы качаете для своего приложения дополнительные файлы из интернета, то может возникнуть необходимость проверить, влезут ли они на девайс =)

Ниже следующий код покажет, сколько свободного места есть в вашем распоряжении.


public static final float BYTE_IN_MB = 1024f*1024f;
public static int getExternalFreeSpace() {

final String path = Environment.getExternalStorageDirectory().getPath();
final int mbfree = getSpaceForFile(path);

return mbfree;
}

public static int getInternalFreeSpace() {
final String path = Environment.getDataDirectory().getPath();
final int mbfree = getSpaceForFile(path);

return mbfree;
}

private static int getSpaceForFile(String path) {

StatFs sf = new StatFs(path);
final int blocks = sf.getAvailableBlocks();
final int blockSize = sf.getBlockSize();
final int totalBytes = blocks*blockSize;
final int mbFree = (int) (totalBytes/BYTE_IN_MB);
Log.d(TAG, "Utils, free space=" + mbFree);
return mbFree;
}

Рейтинг
( Пока оценок нет )
webnewsite.ru / автор статьи
Загрузка ...

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: