/**
 * 文件名：SpaceUtil.java
 * 描述：存储空间工具类
 * 包名：cn.com.kmlt.monstarBase.utils.space
 * 作者：WENJQ
 * 创建日期：2016年05月26日
 * 
 */

package com.mgq.base.utils.space;

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

import java.io.File;


public class SpaceUtil {

	public SpaceUtil() {

		// TODO Auto-generated constructor stub

	}

	/**
	 * ExistSDCard:sdcard是否存在. <br/>
	 * 
	 * @author fh
	 * @return 存在true
	 * @since JDK 1.6
	 */

	public static boolean ExistSDCard() {
		if (android.os.Environment.getExternalStorageState().equals(
				android.os.Environment.MEDIA_MOUNTED)) {
			return true;
		} else
			return false;
	}

	/**
	 * getSdcardFreeSize:查看sdcard剩余空间. <br/>
	 * 预留10M
	 * @return sdcard剩余空间大小,单位BYTE
	 */

	public long getSdcardFreeSize() {
		// 取得SD卡文件路径
		File path = Environment.getExternalStorageDirectory();

		StatFs sf = new StatFs(path.getPath());
		// 获取单个数据块的大小(Byte)
		long blockSize = sf.getBlockSize();
		// 空闲的数据块的数量
		long freeBlocks = sf.getAvailableBlocks();

		// 返回SD卡空闲大小
		return (freeBlocks * blockSize)-10*1024*1024; // 单位BYTE
	}

	/**
	 * getSdcardAllSize:获取总的空间大小. <br/>
	 * 
	 * @return 总的大小，单位MB
	 */

	public long getSdcardAllSize() {

		File path = Environment.getExternalStorageDirectory();
		StatFs sf = new StatFs(path.getPath());

		long blockSize = sf.getBlockSize();
		long allBlocks = sf.getBlockCount();

		return (allBlocks * blockSize) / 1024 / 1024; // 单位MB
	}

}
