Android獲得內部/外部內存的空閑大小我希望以編程方式在設備的內部/外部存儲上獲得空閑內存的大小。我在使用這段代碼:StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
long bytesAvailable = (long)stat.getBlockSize() *(long)stat.getBlockCount();
long megAvailable = bytesAvailable / 1048576;Log.e("","Available MB : "+megAvailable);
File path = Environment.getDataDirectory();StatFs stat2 = new StatFs(path.getPath());
long blockSize = stat2.getBlockSize();long availableBlocks = stat2.getAvailableBlocks();
String format = Formatter.formatFileSize(this, availableBlocks * blockSize);Log.e("","Format : "+format);我得到的結果是:11-15 10:27:18.844: E/(25822): Available MB : 757211-15 10:27:18.844: E/(25822): Format : 869MB問題是,我想獲得sdCard的空閑內存,這是1,96GB現在就來。我怎樣才能修正這段代碼,才能得到自由大小呢?
3 回答

瀟湘沐
TA貢獻1816條經驗 獲得超6個贊
StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());long bytesAvailable;if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR2) { bytesAvailable = stat.getBlockSizeLong() * stat.getAvailableBlocksLong();}else { bytesAvailable = (long)stat.getBlockSize() * (long)stat.getAvailableBlocks();}long megAvailable = bytesAvailable / (1024 * 1024); Log.e("","Available MB : "+megAvailable);
- 3 回答
- 0 關注
- 310 瀏覽
添加回答
舉報
0/150
提交
取消