Android SD卡工具类

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

Android的manifest.xml文档中声名权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>  
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

 判断SDcard是否可以用

    public static boolean isSdCardExists() {  
            if (android.os.Environment.getExternalStorageState().equals(  
                    android.os.Environment.MEDIA_MOUNTED)) {  
                return true;  
            } else {  
                Log.e(" ", "the Sdcard is not exists");  
                return false;  
            }  
        }  

 获取SD卡总大小

    public static String getSdCardTotalSize() {  
            if (!isSdCardExists())  
                return "";  
            File path = Environment.getExternalStorageDirectory();  
            StatFs stat = new StatFs(path.getPath());  
            long blockSize = stat.getBlockSize();  
            long availableBlocks = stat.getBlockCount();  
            return String.valueOf((availableBlocks * blockSize) / 1024 / 1024);  
        }  

获取SD卡可用大小

    public static String getSdcardAvailbleSize() {  
           if (!isSdCardExists())  
               return "";  
           File path = Environment.getExternalStorageDirectory();  
           StatFs stat = new StatFs(path.getPath());  
           long blockSize = stat.getBlockSize();  
           long availableBlocks = stat.getAvailableBlocks();  
           return String.valueOf((availableBlocks * blockSize) / 1024 / 1024);  
       }  

 获取根目录路径

    public static String getRootPath() {  
           if (!isSdCardExists())  
               return "";  
           return Environment.getExternalStorageDirectory().getPath();  
       }  

获取根目录文件列表

    public static File[] getRootFiles() {  
           if (getRootPath().equals(""))  
               return null;  
           List<File> files = new ArrayList<File>();  
           File file = new File(getRootPath());  
           return file.listRoots();  
       }