android statfs可用空间小于实际可以用,在内部存储器上获取可用空间

/*************************************************************************************************

Returns size in bytes.

If you need calculate external memory, change this:

StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());

to this:

StatFs statFs = new StatFs(Environment.getExternalStorageDirectory().getAbsolutePath());

**************************************************************************************************/

public long TotalMemory()

{

StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());

long   Total  = ( (long) statFs.getBlockCount() * (long) statFs.getBlockSize());

return Total;

}

public long FreeMemory()

{

StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());

long   Free   = (statFs.getAvailableBlocks() * (long) statFs.getBlockSize());

return Free;

}

public long BusyMemory()

{

StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());

long   Total  = ((long) statFs.getBlockCount() * (long) statFs.getBlockSize());

long   Free   = (statFs.getAvailableBlocks()   * (long) statFs.getBlockSize());

long   Busy   = Total - Free;

return Busy;

}

将字节转换为人类可读的格式(例如1 Mb,1 Gb)

public static String floatForm (double d)

{

return new DecimalFormat("#.##").format(d);

}

public static String bytesToHuman (long size)

{

long Kb = 1  * 1024;

long Mb = Kb * 1024;

long Gb = Mb * 1024;

long Tb = Gb * 1024;

long Pb = Tb * 1024;

long Eb = Pb * 1024;

if (size

if (size >= Kb && size < Mb)    return floatForm((double)size / Kb) + " Kb";

if (size >= Mb && size < Gb)    return floatForm((double)size / Mb) + " Mb";

if (size >= Gb && size < Tb)    return floatForm((double)size / Gb) + " Gb";

if (size >= Tb && size < Pb)    return floatForm((double)size / Tb) + " Tb";

if (size >= Pb && size < Eb)    return floatForm((double)size / Pb) + " Pb";

if (size >= Eb)                 return floatForm((double)size / Eb) + " Eb";

return "???";

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值