Android获取内部和SDCard的存储空间
2014-01-13 22:56
417 查看
有时我们开Android项目开发时会用到文件存储或上传文件的一些操作,那么我们前提是要获取到该存储设备的大小,以方便于与我们需要操作的文件的大小做比较,如果操作的文件大小小于存储空间,那么就可以继续操作,反之则不能进行操作
该方法获取存储设备的总大小
获取存储设备的可用大小
在主方法调用
有时我们开Android项目开发时会用到文件存储或上传文件的一些操作,那么我们前提是要获取到该存储设备的大小,以方便于与我们需要操作的文件的大小做比较,如果操作的文件大小小于存储空间,那么就可以继续操作,反之则不能进行操作
该方法获取存储设备的总大小
/** * 获取存储设备总存储空间 * * @param path 存储设备目录对象 */ private String getTotalSize(File path) { // 创建StatFs对象 StatFs stat = new StatFs(path.getPath()); // 获取每个存储快的大小 long blockSize = stat.getBlockSize(); // 获取所有的存储块 long blockCount = stat.getBlockCount(); // 获取内部存储的总大小 long totalSize = blockCount * blockSize; // 将long类型转为字符串 String totalStr = Formatter.formatFileSize(this, totalSize); return totalStr; }
获取存储设备的可用大小
/** * 获取可用存储空间 * @param path 存储设备目录对象 * @return */ private String getAvailSize(File path) { // 创建StatFs对象 StatFs stat = new StatFs(path.getPath()); // 获取每个存储快的大小 long blockSize = stat.getBlockSize(); // 获取可用的存储块 long availableBlocks = stat.getAvailableBlocks(); // 获取内部存储的可用大小 long availSize = availableBlocks * blockSize; // 将long类型转为字符串 String availStr = Formatter.formatFileSize(this, availSize); return availStr; }
在主方法调用
private TextView tvSdCard, tvPhoneSpace; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 取消标题 requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); // 获取TextView对象 tvSdCard = (TextView) findViewById(R.id.tv_sd_card_info); tvPhoneSpace = (TextView) findViewById(R.id.tv_data_size); // 获取外部存储目录对象 File externalStorage = Environment.getExternalStorageDirectory(); // 获取内部存储目录对象 File internalStorage = Environment.getDataDirectory(); //获取外部存储设备总空间 String externalTotalSize=getTotalSize(externalStorage); //获取外部存储设备可以空间 String externalAvailSize=getAvailSize(externalStorage); //设置TextView信息 tvSdCard.setText("外部存储设备总空间:"+externalTotalSize+"\n可用空间:"+externalAvailSize); //获取内部存储设备总空间 String internalTotalSize=getTotalSize(internalStorage); //获取内部存储设备可用空间 String internalAvailSize=getAvailSize(internalStorage); //设置TextView信息 tvPhoneSpace.setText("内部存储设备总空间:"+internalTotalSize+"\n可用空间:"+internalAvailSize); }这样就可以获取到存储设备的总大小与可用大小了
相关文章推荐
- Android获取内部和SDCard的存储空间
- Android之获取手机内部及sdcard存储空间
- Android之获取手机内部及sdcard存储空间的方法
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Android:StatFs类 获取系统/sdcard存储空间信息
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Android 漫游之路------将文件保存到内存、SD以及获取手机内部存储与外部存储空间的大小
- 【Android】StatFs类--获取系统/sdcard存储空间信息
- Android中Environment与StatFs获取系统/SDCard存储空间大小
- Android中Environment与StatFs获取系统/SDCard存储空间大小
- 获取 sdcard 和 内部存储的空间大小
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Android:StatFs类 获取系统/sdcard存储空间信息
- Android:StatFs类 获取系统/sdcard存储空间信息
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Android:StatFs类 获取系统/sdcard存储空间信息