SD卡相关辅助类 SDCardUtils

  1. /** 
  2.  * SD卡相关的辅助类 
  3.  *  
  4.  *  
  5.  *  
  6.  */  
  7. public class SDCardUtils  
  8. {  
  9.     private SDCardUtils()  
  10.     {  
  11.         /* cannot be instantiated */  
  12.         throw new UnsupportedOperationException("cannot be instantiated");  
  13.     }  
  14.   
  15.     /** 
  16.      * 判断SDCard是否可用 
  17.      *  
  18.      * @return 
  19.      */  
  20.     public static boolean isSDCardEnable()  
  21.     {  
  22.         return Environment.getExternalStorageState().equals(  
  23.                 Environment.MEDIA_MOUNTED);  
  24.   
  25.     }  
  26.   
  27.     /** 
  28.      * 获取SD卡路径 
  29.      *  
  30.      * @return 
  31.      */  
  32.     public static String getSDCardPath()  
  33.     {  
  34.         return Environment.getExternalStorageDirectory().getAbsolutePath()  
  35.                 + File.separator;  
  36.     }  
  37.   
  38.     /** 
  39.      * 获取SD卡的剩余容量 单位byte 
  40.      *  
  41.      * @return 
  42.      */  
  43.     public static long getSDCardAllSize()  
  44.     {  
  45.         if (isSDCardEnable())  
  46.         {  
  47.             StatFs stat = new StatFs(getSDCardPath());  
  48.             // 获取空闲的数据块的数量  
  49.             long availableBlocks = (long) stat.getAvailableBlocks() - 4;  
  50.             // 获取单个数据块的大小(byte)  
  51.             long freeBlocks = stat.getAvailableBlocks();  
  52.             return freeBlocks * availableBlocks;  
  53.         }  
  54.         return 0;  
  55.     }  
  56.   
  57.     /** 
  58.      * 获取指定路径所在空间的剩余可用容量字节数,单位byte 
  59.      *  
  60.      * @param filePath 
  61.      * @return 容量字节 SDCard可用空间,内部存储可用空间 
  62.      */  
  63.     public static long getFreeBytes(String filePath)  
  64.     {  
  65.         // 如果是sd卡的下的路径,则获取sd卡可用容量  
  66.         if (filePath.startsWith(getSDCardPath()))  
  67.         {  
  68.             filePath = getSDCardPath();  
  69.         } else  
  70.         {// 如果是内部存储的路径,则获取内存存储的可用容量  
  71.             filePath = Environment.getDataDirectory().getAbsolutePath();  
  72.         }  
  73.         StatFs stat = new StatFs(filePath);  
  74.         long availableBlocks = (long) stat.getAvailableBlocks() - 4;  
  75.         return stat.getBlockSize() * availableBlocks;  
  76.     }  
  77.   
  78.     /** 
  79.      * 获取系统存储路径 
  80.      *  
  81.      * @return 
  82.      */  
  83.     public static String getRootDirectoryPath()  
  84.     {  
  85.         return Environment.getRootDirectory().getAbsolutePath();  
  86.     }  
  87.   
  88.   
  89. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值