반응형
Notice
Recent Posts
Recent Comments
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

Do Something IT

[안드로이드]Memory Size Class for viewing available storage(SD카드 용량 뽑아오기) 본문

Android

[안드로이드]Memory Size Class for viewing available storage(SD카드 용량 뽑아오기)

아낙시만더 2011. 4. 26. 14:14
반응형
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();
       
}
}  
출처 : http://www.androidsnippets.com/memory-size-class-for-viewing-available-storage 
반응형
Comments