SDCardUtils

来源:互联网 发布:java项目视频20套 编辑:程序博客网 时间:2024/06/06 01:57
package com.tmeos.xueliang.util;import java.io.File;import android.os.Environment;import android.os.StatFs;/** * @author  * @version V1.0 *  *          SD卡相关的辅助类 */public class SDCardUtils{private SDCardUtils(){/* cannot be instantiated */throw new UnsupportedOperationException( "cannot be instantiated" );}/** * 判断SDCard是否可用 *  * @return */public static boolean isSDCardEnable(){return Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED );}/** * 获取SD卡路径 *  * @return */public static String getSDCardPath(){return Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator;}/** * 获取SD卡的剩余容量 单位byte *  * @return */public static long getSDCardAllSize(){if ( isSDCardEnable() ){StatFs stat = new StatFs( getSDCardPath() );// 获取空闲的数据块的数量long availableBlocks = ( long ) stat.getAvailableBlocks() - 4;// 获取单个数据块的大小(byte)long freeBlocks = stat.getAvailableBlocks();return freeBlocks * availableBlocks;}return 0;}/** * 获取指定路径所在空间的剩余可用容量字节数,单位byte *  * @param filePath * @return 容量字节 SDCard可用空间,内部存储可用空间 */public static long getFreeBytes( String filePath ){// 如果是sd卡的下的路径,则获取sd卡可用容量if ( filePath.startsWith( getSDCardPath() ) ){filePath = getSDCardPath();}else{// 如果是内部存储的路径,则获取内存存储的可用容量filePath = Environment.getDataDirectory().getAbsolutePath();}StatFs stat = new StatFs( filePath );long availableBlocks = ( long ) stat.getAvailableBlocks() - 4;return stat.getBlockSize() * availableBlocks;}/** * 获取系统存储路径 *  * @return */public static String getRootDirectoryPath(){return Environment.getRootDirectory().getAbsolutePath();}}

原创粉丝点击