Android获取内部和SDCard的存储空间
有时我们开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);
}
转载于:https://blog.51cto.com/tenghu/1351360
Android获取内部和SDCard的存储空间相关推荐
- Android获取内置sdcard跟外置sdcard路径
Android获取内置sdcard跟外置sdcard路径.(测试过两个手机,亲测可用) 1.先得到外置sdcard路径,这个接口是系统提供的标准接口. 2.得到上一级文件夹目录 3.得到该目录的所有文 ...
- android获取内部存储卡里的文件,获取Android内部存储(外部SD卡)和扩展存储卡(TF卡)的路径...
获取Android内部存储(外部SD卡)和扩展存储卡(TF卡)的路径 获取Android内部存储(外部SD卡)和扩展存储卡(TF卡)的路径 sd卡存储外部存储卡路径外部存储卡外部存储卡路径内置存储卡外 ...
- android 获取sdcard 禁用sdcard,Android获取内置sdcard跟外置sdcard路径
Android获取内置sdcard跟外置sdcard路径 Android获取内置sdcard跟外置sdcard路径.(测试过两个手机,亲测可用) 1.先得到外置sdcard路径,这个接口是系统提供的标 ...
- Android 获取内部存储中音乐文件的正确姿势
最近想写一个音乐的小APP出来(doge),借此熟悉音频开发的相关技术.但是在获取内部存储的音乐文件时踩了一些坑...所以有了这篇帖子,简单介绍下Android的存储类别,以及如何获取内部存储中的音乐 ...
- Android 获取系统或SDCARD剩余空间信息(转)
android.os下的StatFs类主要用来获取文件系统的状态,能够获取sd卡的大小和剩余空间,获取系统内部空间也就是/system的大小和剩余空间等等. 看下读取sd卡的: Java代 ...
- Android 获取系统或SDCARD剩余空间信息
android.os下的StatFs类主要用来获取文件系统的状态,能够获取sd卡的大小和剩余空间,获取系统内部空间也就是/system的大小和剩余空间等等. 看下读取sd卡的: void readSD ...
- android assets绝对路径,Android 获取assets的绝对路径
第一种方法: String path = "file:///android_asset/文件名"; 第二种方法: InputStream abpath = getClass().g ...
- Android之获取手机内部及sdcard存储空间
Android之获取手机内部及sdcard存储空间 文章链接 知识点: 内部存储空间获取总大小和可用大小: sdcard存储空间获取总大小和可用大小: 新名词记录{StatFs:描述文件系统信息的类} ...
- android获取手机内部存储空间和外部存储空间
原文: http://blog.163.com/hero_213/blog/static/39891214201162123236660/ 该代码片段可以让我们获取internal和external的 ...
最新文章
- 英伟达吞并Arm失败!英美欧盟一齐干涉,老黄还要给孙正义12.5亿美元分手费
- nginx的upstream目前支持5种方式的分配
- ECMAScript 2016(ES7)新特性简介
- android导航屏幕,发现具有软件导航栏的Android设备的真实屏幕尺寸(以像素为单位)...
- 【学习Android NDK开发】Type Signatures(类型签名)
- 给ABBYY添加图像的方法
- 第一章 为什么我们对机器学习感兴趣?(六)
- android studio发布版和测试版证书SHA1获取
- 【转】Android业务组件化之URL Scheme使用
- 卫星电话是直接与卫星通信还是通过地面站?
- python正则表达式提取网页的图片链接
- 《谈美》读书感想:读书于人生的意义
- Flixel Dame 坦克大战(三)完成基本逻辑
- 使用智遥工作流,优化SAP请购流程
- 刚子扯谈:“爆吧”圣斗士们,你妈没叫你回家吃饭
- 【c++篇】c++常见容器中list的模拟实现
- GYM 100827 I.Salary Inequity(线段树)
- 【翻译】在Windows上直接查询SRV方式的地址
- Stream流学习记录
- 什么是整洁代码?大咖程序员们这样说
热门文章
- EnterpriseDB Migration 迁移工具使用测试(2)
- 三,ES6中需要注意的特性(重要)
- MFC中利用CFileDialog选择文件并读取文件所遇到的问题和解决方法
- SpringBoot的修改操作
- 前端编程提高之旅(五)----写给大家看的css书
- 3分钟内快速部署MySQL5.6.35数据库实践
- Log4j日志管理的用法
- 2012 ARM嵌入式开发应用研讨会杂谈
- 单片微型计算机概念及组成,中国民用航空飞行学院2014年微机原理与接口考研复习大纲...
- 如何在python开发的GUI界面程序中恰当地使用PyExecJS