android 通过路径获取资源,Android SDK提供的获取文件路径方法

Android提供了两种获取文件路径的方式:

1、通过Environment获取,常用方法如下图所示:

e8ca9b7182ed

image.png

这些方法都是静态方法。

通过Environment获取的文件路径都是公共的,是所有app都可以访问的,其中我们最常用的就是Environmen.getExternalStorageDirectory(),经常在这个目录下创建文件夹存放文件,这个路径,也就是一般进入系统提供的文件管理app呈现的第一级目录。在这个路径创建的目录和文件,是公共的,同时,除非手动删除,否则即使创建这个目录或文件的app卸载,也会还会存在,各类清理大师什么的,也不会去删除,所以装卸过很多app的话,这个路径下也会有很多的目录,还得一个一个手动删除。

2、通过Context获取,常用方法如下图所示:

e8ca9b7182ed

image.png

查看上面实验结果,发现通过Context(注:这四个方法并不是静态方法,这里的Context是指具体的如Activity之类的Context子类)获取的路径都跟包名有关。事实上,通过Context获取的这四个路径下创建的目录文件都是app私有的,其他app是无法访问的。

getCacheDir()、getFilesDir()获取到的是系统内部存储,是被隐藏起来的,通过系统自带的文件管理app是看不到的,只有root后才能查看。

getCacheDir()获取的路径是缓存路径,系统清理垃圾缓存的时候,会清空这个路径下的所有文件,app的缓存文件可以放在这里。

getFilesDir(),则可以用来存放一些长久性的文件,但是清理应用数据的时候会清空这个路径下的内容

当app卸载时,以上两个路径也会被删除。

getExternalFilesDir()、getExternalCacheDir()获取的是外部存储。可以被用户查看。除了可以被用户查看这一点与前面两个方法获得的路径不一样外,似乎找不到有什么不同的,选择清除数据的时候,getExternalFilesDir()获取的路径目录也会被删掉,选择清楚缓存的时候,getExternalCacheDir()获取的路径目录也会被删掉。

最后,由于基于Android的深度定制系统版本总舵,不同版本获取的路径可能会有一两级目录名不同或者多一两级目录,但是基本的路径是差不多。

@谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值