• 获取手机剩余空间工具类


     1 import java.io.File;
     2 
     3 import com.iss.utils.LogUtil;
     4 
     5 import android.os.Environment;
     6 import android.os.StatFs;
     7 
     8 /**
     9 *  类名 
    10 *  @author 王洪贺<br/>
    11 *    获取手机剩余的存储空间工具类
    12 *    创建日期 2014年8月1日
    13 */
    14 
    15 public class StorageUtil {
    16 
    17     /**
    18     *  获取sd卡剩余存储空间
    19     *  @return 返回kb字节为单位的long整形数值
    20     */
    21     public static long readSDCard() {
    22         String state = Environment.getExternalStorageState();
    23         if (Environment.MEDIA_MOUNTED.equals(state)) {
    24             File sdcardDir = Environment.getExternalStorageDirectory();
    25             StatFs sf = new StatFs(sdcardDir.getPath());
    26             long blockSize = sf.getBlockSize();
    27             long blockCount = sf.getBlockCount();
    28             long availCount = sf.getAvailableBlocks();
    29            /* LogUtil.d("", "block大小:" + blockSize + ",block数目:" + blockCount + ",总大小:" + blockSize
    30                     * blockCount / 1024 + "KB");
    31             LogUtil.d("", "可用的block数目::" + availCount + ",剩余空间:" + availCount * blockSize / 1024
    32                     + "KB");*/
    33             return availCount * blockSize / 1024;
    34         } else {
    35             return 0;
    36         }
    37     }
    38 
    39     /**
    40      *  获取sd卡剩余存储空间
    41      *  @return 返回M字节为单位的long整形数值
    42      */
    43     public static long readSDCardM() {
    44         return readSDCard() / 1024;
    45     }
    46 
    47     /**
    48      *  获取系统剩余存储空间
    49      *  @return 返回以KB为单位的long整形数值
    50      */
    51     public static long readSystem() {
    52         File root = Environment.getRootDirectory();
    53         StatFs sf = new StatFs(root.getPath());
    54         long blockSize = sf.getBlockSize();
    55         long blockCount = sf.getBlockCount();
    56         long availCount = sf.getAvailableBlocks();
    57         /*LogUtil.d("", "block大小:" + blockSize + ",block数目:" + blockCount + ",总大小:" + blockSize
    58                 * blockCount / 1024 + "KB");
    59         LogUtil.d("", "可用的block数目::" + availCount + ",可用大小:" + availCount * blockSize / 1024 + "KB");*/
    60         return availCount * blockSize / 1024;
    61     }
    62 
    63     /**
    64      *  获取系统剩余存储空间
    65      *  @return 返回以M为单位的long整形数值
    66      */
    67     public static long readSystemM() {
    68         return readSystem() / 1024;
    69     }
    70 
    71     /**
    72      *  判断剩余空间是否大于指定空间
    73      *  @param sizeMb 以MB为单位的指定大小
    74      *  @return 返回值true为有相应空间,false为小于对应空间
    75      */
    76     public static boolean isAvailableSpace(int sizeMb) {
    77         boolean hasSpace = false;
    78         long availableSpare = readSDCardM();
    79         if (availableSpare > sizeMb) {
    80             hasSpace = true;
    81         }
    82         return hasSpace;
    83     }
    84 
    85     /**
    86      *  判断剩余空间是否大于指定空间
    87      *  @return 返回值true为有100M,false为小于100M
    88      */
    89     public static boolean isAvailableSpace() {
    90         return isAvailableSpace(100);
    91     }
    92 }
  • 相关阅读:
    系统设计的一些原则
    分层开发思想与小笼包
    工作与生活
    Microsoft .NET Pet Shop 4 架构与技术分析
    用人之道(二) 如何管理软件开发团队
    也谈很多开发人员的毛病
    《3S新闻周刊》第10期,本期策划:“超女”营销带来的启示
    浅析ArcIMS
    MapX的坐标问题
    应用ArcIMS构建GMap风格的地图应用
  • 原文地址:https://www.cnblogs.com/dongweiq/p/3906624.html
Copyright © 2020-2023  润新知