安卓中提供了Context中的方法与Environment类来获取文件。
Context文件操作方法
1 | public File getFileStreamPath(String name) |
用Log把它们都显示出来
1 | Log.d("context", "context.getFileStreamPath-->" + |
Log输出结果(不同版本的安卓系统,目录可能也不相同,详见/storage/sdcard/0, /sdcard, /mnt/sdcard ,/storage/emulated/legacy 的区别)
1 | context.getFileStreamPath-->/data/data/cn.hufeifei.environmenttest/files/test |
Environment工具类中提供了以下几个方法:
1 | Environment.getDataDirectory(); |
**1. 前三个方法 **
用Log输出来:
1 | //IS标识内部存储 |
输出结果为:
1 | D/Environment-IS: /data |
**2. getExternalStoragePublicDirectory方法 **
getExternalStoragePublicDirectory方法用来获取安卓外部存储中系统应用经常用到的公共文件夹,
在Environment中定义了这些文件夹的名字:
1 | Environment.DIRECTORY_MUSIC = "Music" |
它们的目录一般在/storage/emulated/0/
3. 最后的三个方法
最后面三个方法是用来获取挂载点的状态(在Linux中把一些特殊目录称为所谓的挂载点,有点类似于Windows中的分区):
1 | Environment.MEDIA_REMOVED;//媒体存储已经移除了 |
总体概括
下面图片大概地概括了上面的方法
- Context中的方法或得到的路径都与应用包名相关
- Environment中的方法与整个系统有关