获取手机剩余空间工具类

 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 }

 

你可能感兴趣的:(工具类)