protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
File path = Environment.getExternalStorageDirectory();
/*StatFs:
* Retrieve overall information about the space on a filesystem.
* This is a wrapper for Unix statfs().
* 获取文件系统中空间的所有信息(对于android而言,就是获取sd卡或者内存的空间使用情况)
* ------------------------------------------------------------
* 这个类实际上就是模拟了linux系统的df命令。df命令的功能:检查文件系统的磁盘空间占用情况。
* 可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
*/
StatFs statFs=new StatFs(path.getPath());
//返回一个当前区块的大小
long blockSize=statFs.getBlockSize();
//区块的个数
long totalBlocks=statFs.getBlockCount();
//可用区块的个数
long availableBlocks=statFs.getAvailableBlocks();
//获得的是可用sd卡的存储空间
String str=Formatter.formatFileSize(this, blockSize*availableBlocks);
System.out.println("sd卡的可用存储空间:"+str);
TextView textView=(TextView) this.findViewById(R.id.TextView1);
textView.setText(str);
}
貌似新的api有问题。这里面的三个核心方法,经测试已过时,但新的api不好使。