您的位置:首页 > 其它

获取手机剩余空间工具类

2014-08-12 10:11 218 查看
import java.io.File;

import com.iss.utils.LogUtil;

import android.os.Environment;
import android.os.StatFs;

/**
*  类名
*  @author 王洪贺<br/>
*    获取手机剩余的存储空间工具类
*    创建日期 2014年8月1日
*/

public class StorageUtil {

/**
*  获取sd卡剩余存储空间
*  @return 返回kb字节为单位的long整形数值
*/
public static long readSDCard() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
File sdcardDir = Environment.getExternalStorageDirectory();
StatFs sf = new StatFs(sdcardDir.getPath());
long blockSize = sf.getBlockSize();
long blockCount = sf.getBlockCount();
long availCount = sf.getAvailableBlocks();
/* LogUtil.d("", "block大小:" + blockSize + ",block数目:" + blockCount + ",总大小:" + blockSize
* blockCount / 1024 + "KB");
LogUtil.d("", "可用的block数目::" + availCount + ",剩余空间:" + availCount * blockSize / 1024
+ "KB");*/
return availCount * blockSize / 1024;
} else {
return 0;
}
}

/**
*  获取sd卡剩余存储空间
*  @return 返回M字节为单位的long整形数值
*/
public static long readSDCardM() {
return readSDCard() / 1024;
}

/**
*  获取系统剩余存储空间
*  @return 返回以KB为单位的long整形数值
*/
public static long readSystem() {
File root = Environment.getRootDirectory();
StatFs sf = new StatFs(root.getPath());
long blockSize = sf.getBlockSize();
long blockCount = sf.getBlockCount();
long availCount = sf.getAvailableBlocks();
/*LogUtil.d("", "block大小:" + blockSize + ",block数目:" + blockCount + ",总大小:" + blockSize
* blockCount / 1024 + "KB");
LogUtil.d("", "可用的block数目::" + availCount + ",可用大小:" + availCount * blockSize / 1024 + "KB");*/
return availCount * blockSize / 1024;
}

/**
*  获取系统剩余存储空间
*  @return 返回以M为单位的long整形数值
*/
public static long readSystemM() {
return readSystem() / 1024;
}

/**
*  判断剩余空间是否大于指定空间
*  @param sizeMb 以MB为单位的指定大小
*  @return 返回值true为有相应空间,false为小于对应空间
*/
public static boolean isAvailableSpace(int sizeMb) {
boolean hasSpace = false;
long availableSpare = readSDCardM();
if (availableSpare > sizeMb) {
hasSpace = true;
}
return hasSpace;
}

/**
*  判断剩余空间是否大于指定空间
*  @return 返回值true为有100M,false为小于100M
*/
public static boolean isAvailableSpace() {
return isAvailableSpace(100);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: