public static long getInternalAvailableSpace()
{
long availableSpace = -1L;
try
{
StatFs stat = new StatFs(Environment.getDataDirectory().getPath());
stat.restat(Environment.getDataDirectory().getPath());
availableSpace = (long) stat.getAvailableBlocks()
* (long) stat.getBlockSize() / 1048576;
}
catch (Exception e)
{
e.printStackTrace();
}
return availableSpace;
}
public long TotalMemory()
{
StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());
long Total = ( (long) statFs.getBlockCount() * (long) statFs.getBlockSize()) / 1048576;
return Total;
}
public long FreeMemory()
{
StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());
long Free = (statFs.getAvailableBlocks() * (long) statFs.getBlockSize()) / 1048576;
return Free;
}
public long BusyMemory()
{
StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());
long Total = ( (long) statFs.getBlockCount() * (long) statFs.getBlockSize()) / 1048576;
long Free = (statFs.getAvailableBlocks() * (long) statFs.getBlockSize()) / 1048576;
long Busy = Total - Free;
return Busy;
}
以MB为单位。
SD卡的只要修改路径为:
getExternalStorageDirectory