SDCardUtil工具类:

import java.io.File;
 
import android.annotation.SuppressLint;
import android.content.Context;
import android.os.Environment;
import android.os.StatFs;
 
/**
 * SD卡工具类,包含SD卡状态、路径、容量大小
 */
public class SDCardUtil {
 
	private SDCardUtil(){}
	
	/**
	 * 判断SD卡是否可用
	 * @return
	 * ture:可用;false:不可用
	 */
	public static boolean isSDCardEnable(){
		return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
	}
	
	/**
	 * 获取SD卡路径
	 * @return
	 * SD卡存在返回正常路径;SD卡不存在返回""
	 */
	public static String getSDCradPath(){
		if (isSDCardEnable()) {
			return Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator;
		} else {
			return "";
		}
	}
	
	/**
	 * 获取SD卡路径文件
	 * @return
	 * SD卡存在返回正常路径;SD卡不存在返回null
	 */
	public static File getSDCardFile(){
		if(isSDCardEnable()){
			return Environment.getExternalStorageDirectory();
		}else{
			return null;
		}
	}
	
	/**
	 * 获取SD卡DownloadCache路径
	 * @return
	 * SD卡存在返回正常路径;SD卡不存在返回""
	 */
	public static String getSDCardDownloadCachePath(){
		if(isSDCardEnable()){
			return Environment.getDownloadCacheDirectory().getAbsolutePath() + File.separator;
		}else{
			return "";
		}
	}
	
	/**
	 * 获取SD卡DownloadCache路径文件
	 * @return
	 * SD卡存在返回正常路径;SD卡不存在返回null
	 */
	public static File getSDCardDownloadCacheFile(){
		if(isSDCardEnable()){
			return Environment.getDownloadCacheDirectory();
		}else{
			return null;
		}
	}
	
	/**
	 * 获取系统存储路径
	 * @return
	 * SD卡存在返回正常路径;SD卡不存在返回""
	 */
	public static String getSDCardRootPath(){
		if(isSDCardEnable()){
			return Environment.getRootDirectory().getAbsolutePath() + File.separator;
		}else{
			return "";
		}
	}
	
	/**
	 * 获取系统存储路径文件
	 * @return
	 * SD卡存在返回正常路径;SD卡不存在返回null
	 */
	public static File getSDCardRootFile(){
		if(isSDCardEnable()){
			return Environment.getRootDirectory();
		}else{
			return null;
		}
	}
	
	/**
	 * 获取应用程序的/data/data目录
	 * @param context
	 * @return
	 */
	public static String getDataFilePath(Context context){
		return context.getFilesDir().getAbsolutePath() + File.separator;
	}
	
	/**
	 * /data/data/PackageName/cache的路径
	 * @param context
	 * @return
	 */
	public static String getDataCachePath(Context context){
		return context.getCacheDir().getAbsolutePath() + File.separator;
	}
	
	/**
	 * 获取SD卡大小
	 * @return
	 * SD卡存在返回大小;SD卡不存在返回-1
	 */
	@SuppressWarnings("deprecation")
	@SuppressLint("NewApi")
	public static long getSDCardSize(){
		if (isSDCardEnable()) {
			StatFs statFs = new StatFs(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator);
			if (android.os.Build.VERSION.SDK_INT < 18) {
				int blockSize = statFs.getBlockSize();
				int blockCount = statFs.getBlockCount();
				return blockSize * blockCount;
			} else {
				long blockSize = statFs.getBlockSizeLong();
				long blockCount = statFs.getBlockCountLong();
				return blockSize * blockCount;
			}
		}
		return -1;
	}
	
	/**
	 * 获取SD卡可用大小
	 * @return
	 * SD卡存在返回大小;SD卡不存在返回-1
	 */
	@SuppressWarnings("deprecation")
	@SuppressLint("NewApi")
	public static long getSDCardAvailableSize(){
		if (isSDCardEnable()) {
			StatFs statFs = new StatFs(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator);
			if (android.os.Build.VERSION.SDK_INT < 18) {
				int blockSize = statFs.getBlockSize();
				int blockCount = statFs.getAvailableBlocks();
				return blockSize * blockCount;
			} else {
				long blockSize = statFs.getBlockSizeLong();
				long blockCount = statFs.getAvailableBlocksLong();
				return blockSize * blockCount;
			}
		}
		return -1;
	}
	
	/** 
     * 获得手机内存总大小 
     * @return 
     */
	@SuppressWarnings("deprecation")
	@SuppressLint("NewApi")
	public long getRomTotalSize() { 
		File path = Environment.getDataDirectory();
		StatFs statFs = new StatFs(path.getPath());
		if (android.os.Build.VERSION.SDK_INT < 18) {
			int blockSize = statFs.getBlockSize();
			int blockCount = statFs.getBlockCount();
			return blockSize * blockCount;
		} else {
			long blockSize = statFs.getBlockSizeLong();
			long blockCount = statFs.getBlockCountLong();
			return blockSize * blockCount;
		}
	}
	
	/** 
     * 获得手机可用内存 
     * @return 
     */
	@SuppressWarnings("deprecation")
	@SuppressLint("NewApi")
	public long getRomAvailableSize() {  
		File path = Environment.getDataDirectory();
		StatFs statFs = new StatFs(path.getPath());
		if (android.os.Build.VERSION.SDK_INT < 18) {
			int blockSize = statFs.getBlockSize();
			int blockCount = statFs.getAvailableBlocks();
			return blockSize * blockCount;
		} else {
			long blockSize = statFs.getBlockSizeLong();
			long blockCount = statFs.getAvailableBlocksLong();
			return blockSize * blockCount;
		}
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值