2011/12/11

ファイルシステムの情報、空き容量を取得する方法

コード上でファイルシステムの情報や空き容量を取得するにはStatFSが使用
できます。

android.os.StatFsには下記のメソッドが用意されています。
・public StatFs (String path)
 ⇒コンストラクタ。指定したパスのファイルシステムがStartFsの対象とな
  ります。

・public int getAvailableBlocks ()
 ⇒指定したファイルシステムでアプリケーションが利用できる領域のブロ
  ックサイズを返します。

・public int getFreeBlocks ()
 ⇒指定したファイルシステムで利用できる領域のブロックサイズを返します。
  返されるブロックにはアプリケーションから利用できない領域を含みます。

・public int getBlockCount ()
 ⇒ファイルシステムの総ブロック数を返します。

・public int getBlockSize ()
 ⇒ファイルシステムのブロックサイズを返します。単位はByte。

一般アプリでファイルシステムの空き容量を調べる場合はgetAvailableBlocks
を使用します。getFreeBlocksは常用外です。

それぞれの容量を調べる場合はブロック数とブロックサイズの積を求めます。

StatFs sf = new StatFs("/mnt/sdcard/");
int kb = sf.getAvailableBlocks() * sf.getBlockSize() / 1024;
android.util.Log.e("yuki", "yuki KB=" + kb);

参考:http://developer.android.com/reference/android/os/StatFs.html#getAvailableBlocks()

以上です。