android下对存储的操作

来源:互联网 发布:重新安装centos 编辑:程序博客网 时间:2024/05/18 13:11

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

对应的图: