Проверьте, есть ли на карте памяти достаточная память на SD-карте

Мое приложение сохраняет файлы на SD-карте, но прежде чем сохранять файлы, мне нужно проверить, есть ли свободная память. Мне нужно, чтобы проверить, сколько свободной памяти на SD-карте.

Что-то вроде:

if(MemoryCard.getFreeMemory()>20Mb) { saveFiles(); } else { Toast.makeText(this, "Not enough memory", 100).show(); } 

Solutions Collecting From Web of "Проверьте, есть ли на карте памяти достаточная память на SD-карте"

От: http://groups.google.com/group/android-developers/browse_thread/thread/ecede996463a4058

 StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath()); long bytesAvailable = (long)stat.getBlockSize() * (long)stat.getBlockCount(); long megAvailable = bytesAvailable / 1048576; 
 StatFs class 

Вы можете использовать здесь, указать путь для своего внутреннего и внешнего каталога и рассчитать общее, бесплатное и доступное пространство.

 StatFs memStatus = new StatFs(Environment.getExternalStorageDirectory().getPath()); long bytesAvailable = (long)memStatus.getBlockSize() * (long)memStatus.getAvailableBlocks(); 

Дополнительную информацию см. В документации . bytesAvailable – это байты, которые вы можете преобразовать в тот, который вам нужен.

Для Android 4.3+ (уровень API: 18+)

 StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath()); long bytesAvailable = getAvailableBytes();