iOS 沙盒目录

iOS 沙盒目录_第1张图片
App Sandbox 目录结构

1.Documents目录:
用于存储非常大的文件或需要非常频繁更新的数据,能够进行iTunes或iCloud的备份。获取方式:

NSArray*array =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

// 在iOS中,只有一个目录跟传入的参数匹配,所以这个集合里面只有一个元素

NSString*docPath = [array objectAtIndex:0];或:NSString*docPath = [array lastObject];
  • Documents 存放内容我们可以将应用程序的数据文件保存在该目录下。不过这些数据类型仅限于不可再生的数据,可再生的数据文件应该存放在Library/Cache目录下,会被iTunes同步。
  • Documents/Inbox 存放内容该目录用来保存由外部应用请求当前应用程序打开的文件。比如我们的应用叫A,向系统注册了几种可打开的文件格式,B应用有一个A支持的格式的文件F,并且申请调用A打开F。由于F当前是在B应用的沙盒中,我们知道,沙盒机制是不允许A访问B沙盒中的文件,因此苹果的解决方案是讲F拷贝一份到A应用的Documents/Inbox目录下,再让A打开F,会被iTunes同步

2.tmp目录:
这是临时文件目录,用于保存应用运行时所需的临时数据。使用完毕后再将相应的文件从该目录删除。应用没有运行时,系统也可能会清楚该目录下的文件。它不能够进行iTunes或iCloud的备份。获取方式:

NSString*tmpDirectory =NSTemporaryDirectory();

3.Library目录:
Library目录下面包含两个子目录,分别是Preferences和Caches。Library/Preferences 保存应用的所有偏好设置,iOS的设置(Settings)应用会在该目录中查找应用的设置信息。iTunes同步设备时会备份该目录。可以通过NSUserDefaults类存取该目录下的设置信息。Library/Caches保存应用运行时生成的需要持久化的数据。iTunes同步设备时不会备份该目录。一般存储体积大,不需要备份的非重要数据。获取方式:

NSArray*array =NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES);NSString*cachesPath = [array objectAtIndex:0];

你可能感兴趣的:(iOS 沙盒目录)