您的位置:首页 > 移动开发 > Android开发

Android 查看可用存储内存大小

2011-04-23 10:17 471 查看
下面为查看可用存储内存大小的示例,用于查看和内部和外部存储器的总存储。



Java代码

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();

}

}





来个更简单的



Java代码

private void update() {

File path = Environment.getExternalStorageDirectory();

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

long blockSize = stat.getBlockSize();

long totalBlocks = stat.getBlockCount();

long availableBlocks = stat.getAvailableBlocks();

mTotalSize.setText(formatSize(totalBlocks * blockSize));

mUsedSize.setText(formatSize((totalBlocks - availableBlocks) * blockSize));

mAvailableSize.setText(formatSize(availableBlocks * blockSize));





private String formatSize(long size) {

return Formatter.formatFileSize(this, size);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐