Android SD卡工具类

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

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

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

 判断SDcard是否可以用

1
2
3
4
5
6
7
8
9
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卡总大小

1
2
3
4
5
6
7
8
9
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卡可用大小

1
2
3
4
5
6
7
8
9
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); 
   }

 获取根目录路径

1
2
3
4
5
public static String getRootPath() { 
       if (!isSdCardExists()) 
           return ""
       return Environment.getExternalStorageDirectory().getPath(); 
   }

获取根目录文件列表

1
2
3
4
5
6
7
public static File[] getRootFiles() { 
       if (getRootPath().equals("")) 
           return null
       List<File> files = new ArrayList<File>(); 
       File file = new File(getRootPath()); 
       return file.listRoots(); 
   }