您的位置:首页 > 其它

安卓--存储空间

2015-12-08 16:16 232 查看
package com.example.cunchuspace;

import java.io.File;

import android.os.Environment;

import android.os.StatFs;

public class StorageUtils {

     private static final int ERROR = -1;

     /**

      * SDCARD是否存

      */

     public static boolean externalMemoryAvailable() {

         return android.os.Environment.getExternalStorageState().equals(

                 android.os.Environment.MEDIA_MOUNTED);

     }

     /**

      * 获取手机内部剩余存储空间

      * @return

      */

     public static long getAvailableInternalMemorySize() {

         File path = Environment.getDataDirectory();

         StatFs stat = new StatFs(path.getPath());

         long blockSize = stat.getBlockSize();

         long availableBlocks = stat.getAvailableBlocks();

         return availableBlocks * blockSize;

     }

     /**

      * 获取手机内部总的存储空间

      * @return

      */

     public static long getTotalInternalMemorySize() {

      try {

       File path = Environment.getDataDirectory();

           StatFs stat = new StatFs(path.getPath());

           long blockSize = stat.getBlockSize();

           long totalBlocks = stat.getBlockCount();

           return totalBlocks * blockSize;

   } catch (Exception e) {

    e.printStackTrace();

    return ERROR;

   }

     }

     /**

      * 获取SDCARD剩余存储空间

      * @return

      */

     public static long getAvailableExternalMemorySize() {

         if (externalMemoryAvailable()) {

             File path = Environment.getExternalStorageDirectory();

             StatFs stat = new StatFs(path.getPath());

             long blockSize = stat.getBlockSize();

             long availableBlocks = stat.getAvailableBlocks();

             return availableBlocks * blockSize;

         } else {

             return ERROR;

         }

     }

     /**

      * 获取SDCARD总的存储空间

      * @return

      */

     public static long getTotalExternalMemorySize() {

         if (externalMemoryAvailable()) {

             File path = Environment.getExternalStorageDirectory();

             StatFs stat = new StatFs(path.getPath());

             long blockSize = stat.getBlockSize();

             long totalBlocks = stat.getBlockCount();

             return totalBlocks * blockSize;

         } else {

             return ERROR;

         }

     }

}

Formatter.formatFileSize()可将long转换成带单位的容量
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  安卓存储空间