有时我们开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存储。代码清晰,注解详细,方便学习。
内部存储空间获取总大小和可用大小; sdcard存储空间获取总大小和可用大小; 新名词记录{StatFs:描述文件系统信息的类} 概览 在开发中,我们或多或少都会用到存储空间进行存储数据。移动设备上可以有两种的存储方式...
自己整理的一套源代码 如果有不清楚的请联系 wclhbrj@sina.cn
Android 解析如何检测获取SDCard内存剩余空间,用到了Environment 类、StatFs 类。SDCard存储卡在 Android 手机上是可以随时插拔的,每次的动作都会引起Android系统ACTION_BROADCAST,本例子将计算出 SDCard 的剩余...
Android M 读取OTG U盘路径和sdcard路径demo , 第三方apk可以参考使用。摘要为什么要50个字,为什么呢?
Android获取sdcard信息 文档
Android数据存储之Sdcard,Android数据存储之Sdcard,自己写的简单例子,需要的可以参考一下。
博客地址:http://blog.csdn.net/lowprofile_coding/article/details/48269011 1.获取扩展存储设备 2.获取sdcard2外部存储空间 3.获取可用的 EMMC 内部存储空间 4.获取其他外部存储可用空间 5.获取内部存储目录
android应用开发中关于SDCard读写操作的实例代码,在下载学习SDCard操作中,碰到很棘手的问题了。不过最后还在我的坚持下成功了,
Android数据存储(内置sdcard)案例1
获取外置SDcard路径,进行创建,写入,读取,删除操作。
Android如何获取SDCard_内存,不错哦。
1:获取sdcard 图片并以listview显示,并显示其缩略图 2:获取sdcard 视频并以listview显示,并显示其缩略图 3:在显示其缩略图时通过asynctask 来显示,防止阻塞主ui 4: 获取的缩略图保存在缓存中,下次显示时直接...
这是一个关于前面一片博客的源码包这里提供给大家供大家分享,希望对大家有所帮助。
android 获取外置内存卡android获取sdcard内存路径android判断外置sd卡是否存在Android 获取内外置存储卡方法
如何在 android 模拟器中使用SDCard
Android获取手机内置存储SDCard的使用情况,包括SD卡容量、已使用大小,剩余容量大小等信息,将获取的过程写入按钮事件中,单击按钮后,获取SD卡容量信息。 if(Environment.getExternalStorageState().equals...
里面包含和文件如何存储到手机SDCard上 和如何存储到手机内存上 已经 对应这个应用的单元测试代码!
Android日志服务例子,将日志记录在文件中并每天生成一个日志文件