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不好使。
原文:http://blog.csdn.net/hymking/article/details/30251469