以编程方式检查SD卡上是否有足够的内存

时间:2013-04-10 11:24:17

标签: java android

我的应用程序正在将文件保存在SD卡上,但在保存文件之前,我需要检查是否有空闲内存。我需要检查SD卡上有多少可用内存。

类似的东西:

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

3 个答案:

答案 0 :(得分:7)

StatFs class 

您可以在这里使用,提供内部和外部目录的路径,并计算总空间,可用空间和可用空间。

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

有关详细信息,请参阅documentationbytesAvailable以字节为单位,您可以将其转换为您想要的格式。

答案 1 :(得分:4)

来自: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;

答案 2 :(得分:1)

适用于Android 4.3+(API级别:18 +)

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