android.os.StatFs
一个模拟linux的df命令的一个类,获得SD卡和手机内存的使用情况
java.lang.Object
android.os.StatFs

构造方法:
StatFs (String path)

公用方法:
方法 : getAvailableBlocks ()
返回 : int
解释 :返回文件系统上剩下的可供程序使用的块

方法 : getBlockCount ()
返回 : int
解释 : 返回文件系统上总共的块

方法 : getBlockSize ()
返回 : int
解释 : 返回文件系统 一个块的大小单位byte

方法 : getFreeBlocks ()
返回 : int
解释 : 返回文件系统上剩余的所有块 包括预留的一般程序无法访问的

方法 : restat (String path)
返回 : void
解释 : 执行一个由该对象所引用的文件系统雷斯塔特.(Google翻译)

想计算SDCard大小和使用情况时, 只需要得到SD卡总共拥有的Block数或是剩余没用的Block数,再乘以每个Block的大小就是相应的容量大小了单位byte.
public void SDCardSizeTest() { // 取得SDCard当前的状态 String sDcString = android.os.Environment.getExternalStorageState(); if (sDcString.equals(android.os.Environment.MEDIA_MOUNTED)) { // 取得sdcard文件路径 File pathFile = android.os.Environment .getExternalStorageDirectory(); 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(); // 计算SDCard 总容量大小MB long nSDTotalSize = nTotalBlocks * nBlocSize / 1024 / 1024; // 计算 SDCard 剩余大小MB long nSDFreeSize = nAvailaBlock * nBlocSize / 1024 / 1024; }

更多相关文章

  1. Android(java)学习笔记107:通过反射获得构造方法并且使用
  2. Android软键盘弹出将布局底部控件顶上去的问题
  3. Android中的IntentService解析
  4. Android(安卓)Studio maven-metadata.xml 卡着不动原因和解决方
  5. NDK开发之Android(安卓)Studio生成.h头文件的方法
  6. android 蓝牙源码分析
  7. Android: NullPointerException when using RelativeLayout with
  8. 一个使用openGL渲染的炫丽Android动画库
  9. Android(安卓)Webview js或css 替换 注入

随机推荐

  1. Android镜像烧写(Ubuntu)
  2. android的意图
  3. android canvas drawText 使用说明
  4. android闹钟程序实现铃声
  5. Android Studio3.2 Butter Knife配置填坑
  6. 安卓屏幕适配
  7. android studio的安装信息
  8. (Android)调用百度地图api之添加覆盖物
  9. android http通信——HttpURLConntection
  10. 关于 Activity 中 must implement OnFrag