6

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

就像是:

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

3 回答 3

7
StatFs class 

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

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

有关更多详细信息,请参阅文档bytesAvailable以字节为单位,您可以将其转换为您想要的任何格式。

于 2013-04-10T11:26:17.297 回答
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;
于 2013-04-10T11:33:28.217 回答
1

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

StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
long bytesAvailable = getAvailableBytes();
于 2014-08-25T12:33:44.713 回答