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 | 存储缓存文件,例如,网页缓存文件,数据库缓存文件等,与临时文件的区别在于可能多次运行有效,注意系统也可能会清空该目录,此时需要重新创建或者下载缓存文件。 | 不备份 |