iOS 沙盒目录

作者: hi_xgb | 来源:发表于2016-03-11 20:12 被阅读975次

iOS 应用程序只能在为该程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒。苹果官方文档中有如下一张图介绍沙盒目录:

官方文档对于沙盒中常用的目录做了说明,有如下几个常用目录:

  1. AppName.app:该目录包含了应用程序本身的数据,包括资源文件和可执行文件等。整个目录是只读的,并且不会被 iTunes 同步。可通过NSString *bundlePath = [[NSBundle mainBundle] bundlePath];获取到路径地址。

  2. Documents/:我们可以将应用程序的数据文件保存在该目录下。不过这些数据类型仅限于不可再生的数据,可再生的数据文件应该存放在Library/Cache目录下。该目录会被iTunes同步,可通过NSString *documentPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;获取到路径地址。

    • Documents/Inbox:外部应用程序需要访问的文件保存在该目录下,例如系统的邮件 App 要使用到当前应用程序的附件资源就存放在这个目录。沙盒机制是不允许外部程序访问沙盒中的文件,因此苹果的解决方案是将文件拷贝一份到应用的 Documents/Inbox 目录下。该目录只读,不可修改,会被 iTunes 同步。
  3. Library/:存放默认设置或其它状态信息。除了 Caches 子目录外其他目录都会被 iTunes 同步。

    • Library/Preferences:NSUserDefaults 写的设置数据都会保存到该目录下的一个 plist 文件中,会被 iTunes 同步。
    • Library/Caches: iTunes 不会同步此文件夹,并且当系统空间不足的时候会被清理,适合存储体积大,不需要备份的非重要数据。可通过NSString *cachesPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;获取到路径地址。
  4. tmp/:各种临时文件,保存应用再次启动时不需要的文件。而且,当应用不再需要这些文件时应该主动将其删除,因为该目录下的东西随时有可能被系统清理掉,目前已知的一种可能清理的原因是系统磁盘存储空间不足的时候。可通过NSString *tmpPath = NSTemporaryDirectory();获取到路径地址。

写了一个小工具类用来获取这些路径地址:
https://github.com/hiXgb/BBDocumentPathUtil.git

参考文档:
https://developer.apple.com/library/mac/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html

如果您觉得本文对您有所帮助,请点击「喜欢」来支持我。

转载请注明出处,有任何疑问都可联系我,欢迎探讨。

相关文章

  • iOS 数据持久化知识汇总(1)—————存储路径

    一、沙盒和沙盒存储路径 1、沙盒是什么 iOS 每个iOS应用都有自己的应用沙盒,应用沙盒就是文件系统目录 。所...

  • 数据持久化存储

    沙盒 iOS程序默认情况下只能访问自己的目录,这个目录被称作沙盒 沙盒结构 沙盒结构主要为 DocumentLib...

  • 沙盒文件

    iOS 持久化沙盒目录结构:出于安全考虑,iOS 系统的沙盒机制规定每个应用都只能访问当前沙盒目录下的文件,也有例...

  • iOS沙盒目录结构解析

    iOS沙盒目录结构解析 出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,...

  • iOS 文件操作

    iOS文件(沙盒目录,文件创建、移动、复制等) 目录获取获取沙盒的主目录路径: (NSString *)homeD...

  • 沙盒

    一、iOS沙盒机制介绍(1)概念:每个ios应用都有自己的应用沙盒,应用沙盒就是文件系统目录,与其他应用放入文件 ...

  • Objective-C沙盒结构

    导读: 一、什么是沙盒机制二、沙盒的特点三、沙盒的结构组成四、获取沙盒目录路径 一、什么是沙盒机制 iOS中的沙盒...

  • OC - 沙盒

    导读: 一、什么是沙盒机制 二、沙盒的特点 三、沙盒的结构组成 四、获取沙盒目录路径 一、什么是沙盒机制 iOS中...

  • iOS本地数据存取,看这里就够了

    iOS本地数据存取,看这里就够了 应用沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文...

  • iOS·Swift 数据持久化(二)沙盒、属性列表两个概念的总结

    沙盒 iOS程序默认情况下只能访问程序自己的目录,这个目录被称为“沙盒”。每个应用程序沙盒都包括以下三个目录: D...

网友评论

  • vv_typist:外部应用程序需要访问的文件保存在该目录下?也就是外部应用可以访问其他应用的沙盒Documents文件?

本文标题:iOS 沙盒目录

本文链接:https://www.haomeiwen.com/subject/cbkxlttx.html