2016-10-18 14 views
-1

デバイスストレージを備えたユーザーストレージのようなデバイスの内部ストレージ全体を取得しようとしています。私はこのコードを使用して内部デバイスのストレージを取得することができます。デバイスの内部ストレージ全体を取得する方法

final File path = Environment.getDataDirectory(); 
    StatFs stat = new StatFs(path.getPath()); 
    long bytesAvailable = (long)stat.getBlockSize() * (long)stat.getBlockCount(); 
    long megAvailable = bytesAvailable/1048576; 

しかし、私のデバイスには16GBの内蔵メモリがあり、結果は11GBです。システムメモリ(OSが格納されている場所)が表示されません。

+0

から読み取ることができるようにあなたがそれを使用することができますが、この答えをtiryなかったhttp://stackoverflow.com/a/8133437/3678308 ?? –

+0

はい私のコードに似ていますすでに私はこれをしました –

答えて

-1

StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath()); 
long sdAvailSize = (long)stat.getAvailableBlocks() * (long)stat.getBlockSize(); 
long gigaAvailable = sdAvailSize/1073741824; 
+0

私のコードとあなたのコードの違いはどちらも似たような人です。私はすでにこれを行っています –

0
public static String getAvailableInternalMemorySize() { 
     File path = Environment.getDataDirectory(); 
     StatFs stat = new StatFs(path.getPath()); 
     long blockSize = stat.getBlockSize(); 
     long availableBlocks = stat.getAvailableBlocks(); 
     return bytesToHuman(availableBlocks * blockSize); 
    } 

の下bytesToHumanがthis

public static String floatForm (double d) 
    { 
     return new DecimalFormat("#.##").format(d); 
    } 


    public static String bytesToHuman(long size) 
    { 
     long Kb = 1 * 1024; 
     long Mb = Kb * 1024; 
     long Gb = Mb * 1024; 
     long Tb = Gb * 1024; 
     long Pb = Tb * 1024; 
     long Eb = Pb * 1024; 

     if (size < Kb)     return floatForm(  size ) + " byte"; 
     if (size >= Kb && size < Mb) return floatForm((double)size/Kb) + " KB"; 
     if (size >= Mb && size < Gb) return floatForm((double)size/Mb) + " MB"; 
     if (size >= Gb && size < Tb) return floatForm((double)size/Gb) + " GB"; 
     if (size >= Tb && size < Pb) return floatForm((double)size/Tb) + " TB"; 
     if (size >= Pb && size < Eb) return floatForm((double)size/Pb) + " PB"; 
     if (size >= Eb)     return floatForm((double)size/Eb) + " EB"; 

     return "???"; 
    } 
+0

私のコードを見ることができますか?私のコードと同じです。最初の質問をしてから答えてください。 –

関連する問題