Android中的路径用于标识文件或目录在设备存储中的位置,通常分为以下几种类型:
1. 绝对路径
从存储根目录开始的完整路径,例如:`/storage/emulated/0/Download/file.txt`,可直接定位文件但依赖具体设备的存储结构。
2. 相对路径
基于当前工作目录的路径,如`../images/photo.jpg`,灵活性高但需明确上下文环境。
3. 内部存储路径
- 应用私有目录:通过`Context.getFilesDir()`获取,路径如`/data/data/
- 缓存目录:`Context.getCacheDir()`返回临时文件路径,系统可能会自动清理。
4. 外部存储路径
- 公有目录:如`Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)`指向共享的下载文件夹。
- 应用专属目录:通过`Context.getExternalFilesDir(null)`访问,路径如`/storage/emulated/0/Android/data/
5. Content URI路径
使用`content://`协议(如`content://media/external/images/media/123`),通过Android的MediaStore或文件提供器访问,兼容Scoped Storage限制。
扩展知识:
Scoped Storage影响:Android 11后限制应用直接访问外部存储的绝对路径,推荐使用MediaStore或SAF(存储访问框架)。
路径分隔符:Unix风格(`/`),Windows风格(`\`)在Android中可能导致兼容问题。
符号链接:部分系统路径(如`/sdcard`)是实际物理路径的符号链接,需注意真实路径可能因厂商定制而异。
存储卷路径:多用户设备中路径可能包含用户ID(如`/storage/emulated/10`),需动态适配。
在开发中应根据场景选择路径类型,并处理好运行时权限和版本兼容性问题。