访问android 手机内存与存储卡,查询存储卡剩余容量 (Environment 加 StatFs)

时间:2024-04-08 20:51:23

手机的存储空间分为手机内存及 存储卡(SD Card )空间

这里先介绍 对手机内存、SDCard 做添加、删除的功能

程序逻辑是: 首先用户先选择访问手机/ 存储卡,以列表的方式列出所有 目录和文件名, 在选项菜单上 有"添加" 、“删除” , 点击“添加” 将跳转到输入文件内容界面,输入后点菜单 ”保存" 将文件存入内存或 SD卡。 点"删除" 可删除所选择的文件.

需要注意: getFileDir() 获取的路径为 “/data/data/ 程序包名/ files”, "files" 是固定的返回值,即使这个文件夹不存在,这也是程序运行的临时文件夹,

Environment.getExternalStorageDirectory() 获取是 SD卡存储路径 ,返回固定值 "/sdcard".

关于Environment 类,它提供访问环境变量的方法,说明如下:

方法名称与说明
方法名称 说明
getDataDirectory() 取得data 目录:/data
getDownloadCacheDirectory() 取得 Cache 目录: /cache
getExternalStorageDirectory() 取得 SD卡目录:/sdcard
getExternalStorageState() 取得 SD卡状态如:MEDIA_MOUNTED,MEDIA_REMOVED : String
getRootDirectory() 取得系统目录:/system
示意图如下:

访问android 手机内存与存储卡,查询存储卡剩余容量 (Environment 加 StatFs)访问android 手机内存与存储卡,查询存储卡剩余容量 (Environment 加 StatFs)

具体代码请参见 EX06_09 工程

二 下面介绍 查询存储卡剩余容量

通过 StatFs 文件系统的方法取得 SD 卡里的剩余空间, 注意这里有一个小知识:

将一个较大的数(可以是整型或 浮点型) 在整数位 每 3个数字用, 分隔如 1,000.98, 写法如下:

DecimalFormat formatter = new DecimalFormat();
/* 每3个数字用,分隔如:1,000 */
formatter.setGroupingSize(3);
String result = formatter.format(1233421341324.234234);

此时 result 将 在整数位 每 3个数字以 , 分隔

本程序运行示意图如下:

访问android 手机内存与存储卡,查询存储卡剩余容量 (Environment 加 StatFs)

相关代码请参见 EX06_08 工程