android下对存储的操作

本文介绍了在Android开发中如何使用Environment类来操作不同类型的存储路径,包括SD卡、数据目录、缓存目录等,并详细解释了如何获取这些路径及SD卡的状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

对应的图:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值