六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 42|回复: 0

[转贴] 查询存储空间的代码

[复制链接]

升级  54.67%

34

主题

34

主题

34

主题

秀才

Rank: 2

积分
132
 楼主| 发表于 2013-1-15 02:29:15 | 显示全部楼层 |阅读模式
以下代码片段转载自Android Snippets

import java.io.File;     import android.os.Environment;   import android.os.StatFs;     public class MemoryStatus {         static final int ERROR = -1;              static public boolean externalMemoryAvailable() {           return android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);       }              static public long getAvailableInternalMemorySize() {           File path = Environment.getDataDirectory();           StatFs stat = new StatFs(path.getPath());           long blockSize = stat.getBlockSize();           long availableBlocks = stat.getAvailableBlocks();           return availableBlocks * blockSize;       }              static public long getTotalInternalMemorySize() {           File path = Environment.getDataDirectory();           StatFs stat = new StatFs(path.getPath());           long blockSize = stat.getBlockSize();           long totalBlocks = stat.getBlockCount();           return totalBlocks * blockSize;       }              static public long getAvailableExternalMemorySize() {           if(externalMemoryAvailable()) {               File path = Environment.getExternalStorageDirectory();               StatFs stat = new StatFs(path.getPath());               long blockSize = stat.getBlockSize();               long availableBlocks = stat.getAvailableBlocks();               return availableBlocks * blockSize;           } else {               return ERROR;           }       }              static public long getTotalExternalMemorySize() {           if(externalMemoryAvailable()) {               File path = Environment.getExternalStorageDirectory();               StatFs stat = new StatFs(path.getPath());               long blockSize = stat.getBlockSize();               long totalBlocks = stat.getBlockCount();               return totalBlocks * blockSize;           } else {               return ERROR;           }       }              static public String formatSize(long size) {           String suffix = null;                  if (size >= 1024) {               suffix = "KiB";               size /= 1024;               if (size >= 1024) {                   suffix = "MiB";                   size /= 1024;               }           }                  StringBuilder resultBuffer = new StringBuilder(Long.toString(size));                  int commaOffset = resultBuffer.length() - 3;           while (commaOffset > 0) {               resultBuffer.insert(commaOffset, ',');               commaOffset -= 3;           }                  if (suffix != null)               resultBuffer.append(suffix);           return resultBuffer.toString();       }   }
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表