iOS 本身是基于 Linux 系统的,所以其目录结构与 Linux 非常类似。
整体目录结构
整体的目录结构如下:
系统 App
系统内置的 App,或者越狱环境下拥有 Root 权限的 App,都存放在以下目录:
1 | /Applications/ |
第三方 App
从 App Store 下载的 App,或者通过 XCode 安装的 App,都存放在以下目录:
1 | /var/containers/Bundle/Application/ |
沙盒目录
App 处于安全考虑,在非越狱环境下,只能运行在自己的沙盒目录下。沙盒包含的目录如图:
其中,App 的执行文件的存储目录参考上文,数据文件的存储目录路径为:
1 | /var/mobile/Containers/Data/Application/ |
除此以外,还有在运行时获取的 iCloud 目录等。
针对沙盒目录,区别为:
目录 | 文件 | 备份(iTunes or iCloud) |
---|---|---|
App | 不能写入 | 不备份 |
Documents | 存储用户创建的文件,例如用户自己创建的编辑文件,音乐等 | 备份 |
tmp | 存储单次运行的临时文件,最好在不需要时,立即删除,节省硬盘空间,系统也会周期性地清除该目录 | 不备份 |
Library/Inbox | 存储可能被外部调用的文件,例如邮件的附件,可以读取或者删除,但不能创建或者写入 | 备份 |
Library/Application support | 存储 App 辅助文件,例如配置文件,模板文件,地图底图文件等 | 备份 |
Library/Preferences | 存储 NSUserDefaults 文件 | 备份 |
Library/Caches | 存储缓存文件,例如,网页缓存文件,数据库缓存文件等,与临时文件的区别在于可能多次运行有效,注意系统也可能会清空该目录,此时需要重新创建或者下载缓存文件。 | 不备份 |