首页 > 代码库 > SD卡可用空间大小的判断

SD卡可用空间大小的判断

	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不好使。