android下对存储的操作
android下对sd卡的存储操作一般是通过Environment来实现的。主要有如下集中操作。
//获取sd卡中的信息,注意这里的sdcard指的是所有存储设备下的sdcard目录
File sdcard=Environment.getExternalStorageDirectory();
System.out.println("sdcard:"+sdcard.getName());
//获取数据目录,这里的数据目录一般指的是由程序生成的文件,这些文件是由程序查看的。比如小型数据库sqlite,xml格式的存储对象SharedPreferences等等,对应data目录
File data = Environment.getDataDirectory();
System.out.println("data:"+data.getName());
//获取Android 下载/缓存内容目录。对应cache目录
File cache = Environment.getDownloadCacheDirectory();
System.out.println("cache:"+cache.getName());
//获取系统文件,对应system目录
File root = Environment.getRootDirectory();
System.out.println("root:"+root.getName());
// 取一个高端的公用的外部存储器目录来摆放某些类型的文件
File publicDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
System.out.println(Environment.DIRECTORY_PICTURES);
System.out.println("publicDirectory:" + publicDirectory);
//获取sdcard的状态,
String state = Environment.getExternalStorageState();
System.out.println("state:"+state);
其中state的状态有:
- MEDIA_BAD_REMOVAL
解释:返回getExternalStorageState(),表明SDCard 被卸载前己被移除 - MEDIA_CHECKING
解释:返回getExternalStorageState(),表明对象正在磁盘检查。 - MEDIA_MOUNTED
解释:返回getExternalStorageState(),表明对象是否存在并具有读/写权限 - MEDIA_MOUNTED_READ_ONLY
解释:返回getExternalStorageState(),表明对象权限为只读 - MEDIA_NOFS
解释:返回getExternalStorageState(),表明对象为空白或正在使用不受支持的文件系统。 - MEDIA_REMOVED
解释:返回getExternalStorageState(),如果不存在 SDCard 返回 - MEDIA_SHARED
解释:返回getExternalStorageState(),如果 SDCard 未安装 ,并通过 USB 大容量存储共享 返回 - MEDIA_UNMOUNTABLE
解释:返回getExternalStorageState(),返回SDCard 不可被安装 如果 SDCard是存在但不可以被安装 - MEDIA_UNMOUNTED
解释:返回getExternalStorageState(),返回 SDCard 已卸掉如果 SDCard 是存在但是没有被安装
09-29 08:20:45.386: I/System.out(281): sdcard:sdcard
09-29 08:20:45.386: I/System.out(281): data:data
09-29 08:20:45.386: I/System.out(281): cache:cache
09-29 08:20:45.386: I/System.out(281): root:system
09-29 08:20:45.386: I/System.out(281): Pictures
09-29 08:20:45.410: I/System.out(281): publicDirectory:/mnt/sdcard/Pictures
09-29 08:20:45.410: I/System.out(281): state:mounted
对应的图: