Android - 文件操作简单总结

有时候应用程序需要保存一些数据,有如下选择:
1、保存到SD卡,有两种方式:
a、在SD卡的根目录下创建一个文件夹,用于保存数据,
b、获取 SDCard/Android/data/你的应用的包名/...目录,将数据保存在里边。
首先看a方式,这会使用到 Environment  类, Environment 位于 android.os 包下,API解释为  Provides access to environment variables.
几个常用的方法,关于获取路径的(设备不同,获取到的值可能会有差异):
[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <span style="background-color: rgb(255, 255, 255);">strPath1 = Environment.getRootDirectory().getAbsolutePath();      /system  
  2. strPath2 = Environment.getDataDirectory().getAbsolutePath();        /data  
  3. strPath3 = Environment.getDownloadCacheDirectory().getAbsolutePath();       /cache  
  4. strPath4 = Environment.getExternalStorageDirectory().getAbsolutePath();     /storage/emulated/0  
  5. strPath5 = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC).getAbsolutePath();  
  6. /storage/emulated/0/Music  
  7. strPath6 = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath();  
  8. /storage/emulated/0/DCIM</span>  
关于获取状态的:
[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. strState = Environment.getExternalStorageState();   mounted  
  2. 外部存储的状态常用的有以下几个值:  
  3. MEDIA_CHECKING 正在检查  
  4. MEDIA_MOUNTED 已经挂载  
  5. MEDIA_MOUNTED_READ_ONLY 已经挂载,只读  
  6. MEDIA_REMOVED 被移除  
  7. MEDIA_UNMOUNTABLE 无法挂载  
  8. MEDIA_UNMOUNTED 没有挂载  
  9. isRemovable = Environment.isExternalStorageRemovable();     false  
使用a方式保存数据时,通常的做法是:
... ...
b方式会用到以下方法:
[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. strCachePath = getExternalCacheDir().getAbsolutePath(); /storage/emulated/0/Android/data/com.hwgt.filepath/cache  
  2. strFilePath = getExternalFilesDir(null).getAbsolutePath();      /storage/emulated/0/Android/data/com.hwgt.filepath/files  
  3. strFilePath = getExternalFilesDir("test").getAbsolutePath();   
  4. /storage/emulated/0/Android/data/com.hwgt.filepath/files/test  
getExternalCacheDir()方法获取到的是  SDCard/Android/data/你的应用的包名/cache目录
getExternalFilesDir()方法获取到的是SDCard/Android/data/你的应用的包名/file目录
使用a和b两种方式的区别是:
使用a方式,当应用被卸载掉之后,SD卡中的数据不会被清除,会留下垃圾数据
使用b方式, 当应用被卸载掉之后, SDCard/Android/data/你的应用的包名/这个目录都会被删除
并且,可以通过 设置-应用程序管理器-应用程序信息-清除缓存(清除数据)来清除 cache目录( file目录 )的文件
当SD卡不可用时,使用下列方法:
[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. strCachePath = getCacheDir().getAbsolutePath(); /data/data/com.hwgt.filepath/cache  
  2. strFilePath = getFilesDir().getAbsolutePath();  /data/data/com.hwgt.filepath/files  
获取数据存储路径
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值