手机的存储空间分为手机内存及 存储卡(SD Card )空间
这里先介绍 对手机内存、SDCard 做添加、删除的功能
程序逻辑是: 首先用户先选择访问手机/ 存储卡,以列表的方式列出所有 目录和文件名, 在选项菜单上 有"添加" 、“删除” , 点击“添加” 将跳转到输入文件内容界面,输入后点菜单 ”保存" 将文件存入内存或 SD卡。 点"删除" 可删除所选择的文件.
需要注意: getFileDir() 获取的路径为 “/data/data/ 程序包名/ files”, "files" 是固定的返回值,即使这个文件夹不存在,这也是程序运行的临时文件夹,
另外,Activity还提供了getCacheDir()方法: getCacheDir()方法用于获取/data/data/cache目录
Environment.getExternalStorageDirectory() 获取是 SD卡存储路径 ,返回固定值 "/sdcard".
关于Environment 类,它提供访问环境变量的方法,说明如下:
方法名称 | 说明 |
getDataDirectory() | 取得data 目录:/data |
getDownloadCacheDirectory() | 取得 Cache 目录: /cache |
getExternalStorageDirectory() | 取得 SD卡目录:/sdcard |
getExternalStorageState() | 取得 SD卡状态如: MEDIA_MOUNTED,MEDIA_REMOVED : String |
getRootDirectory() | 取得系统目录:/system |
具体代码请参见 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个数字以 , 分隔
本程序运行示意图如下:
相关代码请参见 EX06_08 工程