SD卡工具类

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值