
Unity下有Application.dataPath,Application.streamingAssetsPath,Application.persistentDataPath,Application.temporaryCachePath等路径。我们经常要去读写这些路径,或者进到目录里去查看存在什么文件。所以下面主要从 读写权限 和 路径 来解析这些路径名。
权限| 路径 | 意思 | 读写权限 | 是否在包内 |
|---|---|---|---|
| Application.dataPath | Assets目录 | 只读 | 是 |
| Application.streamingAssetsPath | Assets/流资源目录 | 只读 | 是 |
| Application.persistentDataPath | 持久化目录 | 可读可写 | 否 |
| Application.temporaryCachePath | 临时缓存目录 | 只读 | 否 |
基于只有Application.persistentDataPath拥有可读可写的特性,一般存储东西或者下载热更新文件都是放在这个目录里面的。
我们平常会把一些资源文件先放在Application.streamingAssetsPath里,安装后再拷贝进Application.persistentDataPath里,为什么不直接放进Application.persistentDataPath里呢。
因为Application.persistentDataPath,它的路径不在包内,得安装后才存在,所以得这样做。
各平台下的路径 windows| 路径 | 路径格式 | 路径解析 | 路径举例 |
|---|---|---|---|
| Application.dataPath | 项目的Assets目录 | F:/Learn/TurnBaseDemo/Assets | |
| Application.streamingAssetsPath | 项目的Assets/StreamingAssets | F:/Learn/TurnBaseDemo/Assets/StreamingAssets | |
| Application.persistentDataPath | %userprofile%AppDataLocalLow | %userprofile% 一般等于C:/Users/PC,companyname=公司名字,productname=产品名字 | C:/Users/PC/AppData/LocalLow/super41/TurnBaseDemo |
| Application.temporaryCachePath | %userprofile%AppDataLocalTemp | 同上 | C:/Users/PC/AppData/Local/Temp/super41/TurnBaseDemo |
| 路径 | 路径格式 | 路径解析 |
|---|---|---|
| Application.dataPath | /data/app/ | 在压缩包里面 |
| Application.streamingAssetsPath | jar:file:///data/app/ | 使用UnityWebRequest 或www来访问该目录的资源 |
| Application.persistentDataPath | /storage/emulated/0/Android/data/ | packagename = 包名 |
| Application.temporaryCachePath | /storage/emulated/0/Android/data/ | 同上 |
一般我们用 文件管理器 或 adb命令 进对应的路径查看一些文件有没存在。这里比较有意义的路径是Application.persistentDataPath和Application.temporaryCachePath,因为这两个路径能进去查看,
另外两个没Root权限一般访问不了,也不需要访问,一般都是代码上的访问。
| 路径 | 路径格式 | 路径解析 |
|---|---|---|
| Application.dataPath | /var/containers/Bundle/Application/app sandbox/xxx.app/Data | app sandbox 代指应用程序沙盒 |
| Application.streamingAssetsPath | /var/containers/Bundle/Application/app sandbox/xxx.app/Data/Raw | 同上 |
| Application.persistentDataPath | /var/mobile/Containers/Data/Application/app sandbox/Documents | 同上 |
| Application.temporaryCachePath | /var/mobile/Containers/Data/Application/app sandbox/Library/Caches | 同上 |