返回顶部

收藏

获得sdcard大小及使用情况信息

更多

代码取自小米的文件管理器

public static class SDCardInfo {
    public long total;

    public long free;
}

public static SDCardInfo getSDCardInfo() {
    String sDcString = android.os.Environment.getExternalStorageState();

    if (sDcString.equals(android.os.Environment.MEDIA_MOUNTED)) {
        File pathFile = android.os.Environment.getExternalStorageDirectory();

        try {
            android.os.StatFs statfs = new android.os.StatFs(pathFile.getPath());

            // 获取SDCard上BLOCK总数
            long nTotalBlocks = statfs.getBlockCount();

            // 获取SDCard上每个block的SIZE
            long nBlocSize = statfs.getBlockSize();

            // 获取可供程序使用的Block的数量
            long nAvailaBlock = statfs.getAvailableBlocks();

            // 获取剩下的所有Block的数量(包括预留的一般程序无法使用的块)
            long nFreeBlock = statfs.getFreeBlocks();

            SDCardInfo info = new SDCardInfo();
            // 计算SDCard 总容量大小MB
            info.total = nTotalBlocks * nBlocSize;

            // 计算 SDCard 剩余大小MB
            info.free = nAvailaBlock * nBlocSize;

            return info;
        } catch (IllegalArgumentException e) {
            Log.e(LOG_TAG, e.toString());
        }
    }

    return null;
}
//该片段来自于http://outofmemory.cn

标签:java,手机开发

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. 铁木箱子 发表 2011-11-27 14:31:09 WAC启动Android模拟器时出现“transfer error: Read-only file
  2. bluedavy 发表 2014-03-03 05:58:33 Java程序员也应该知道的系统知识系列之网卡
  3. 博主 发表 2017-02-24 16:00:00 写一个玩具Java虚拟机
  4. timon2010 发表 2014-05-20 16:40:15 Java并发编程基础
  5. 炒饭 发表 2015-05-23 03:51:23 让Java Swing使用系统默认主题
  6. Terry Zhang 发表 2014-05-23 13:08:39 [JVM] Java SE 7 版说明
  7. gm777 发表 2017-03-13 13:48:32 《Netty官方文档》本地传输接口
  8. 博主 发表 2014-05-29 14:35:34 使用Java 8的流接口解析文件
  9. Tyrian 发表 2017-03-19 14:00:48 《Netty官方文档》引用计数对象
  10. 童燕群 发表 2014-04-11 12:12:01 深入分析Volatile的实现原理
  11. jihite 发表 2017-03-25 02:20:00 Java 使用gson 解析 Json - jihite
  12. 逍遥冲 发表 2014-02-16 15:32:11 Java8新特性Date和Time

发表评论