dai_lm 发表于 2013-1-28 18:51:38

[转贴] 查询存储空间的代码

以下代码片段转载自Android Snippets

import java.io.File;   import android.os.Environment;   import android.os.StatFs;   public class MemoryStatus {         static final int ERROR = -1;            static public boolean externalMemoryAvailable() {         return android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);       }            static public long getAvailableInternalMemorySize() {         File path = Environment.getDataDirectory();         StatFs stat = new StatFs(path.getPath());         long blockSize = stat.getBlockSize();         long availableBlocks = stat.getAvailableBlocks();         return availableBlocks * blockSize;       }            static public long getTotalInternalMemorySize() {         File path = Environment.getDataDirectory();         StatFs stat = new StatFs(path.getPath());         long blockSize = stat.getBlockSize();         long totalBlocks = stat.getBlockCount();         return totalBlocks * blockSize;       }            static public 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;         }       }            static public 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;         }       }            static public String formatSize(long size) {         String suffix = null;                  if (size >= 1024) {               suffix = "KiB";               size /= 1024;               if (size >= 1024) {                   suffix = "MiB";                   size /= 1024;               }         }                  StringBuilder resultBuffer = new StringBuilder(Long.toString(size));                  int commaOffset = resultBuffer.length() - 3;         while (commaOffset > 0) {               resultBuffer.insert(commaOffset, ',');               commaOffset -= 3;         }                  if (suffix != null)               resultBuffer.append(suffix);         return resultBuffer.toString();       }   }
页: [1]
查看完整版本: [转贴] 查询存储空间的代码