您的位置:首页 > 其它

SD卡操作工具类

2016-04-19 14:36 316 查看
import java.io.File;  

  

import android.os.Environment;  

import android.os.StatFs;  

  

/** 

 * 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();  

    }  

  

  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: