iOS 沙盒目录结构

iOS系统中,每个应用都有自己的沙盒,且应用只能访问其对应的沙盒目录下面的文件。当然,在用户授权的情况下,应用也可以访问其他目录下面的文件。比如,用户授权情况下,应用可以访问相册、通讯录。在开发中,经常会涉及到 iOS 沙盒目录,比如读写文件,归档解档等。

一:沙盒的目录结构

app的沙盒目录结构如下图:

可知,沙盒目录下有三个文件夹:Documents、Library、Temp。其中,Library下面有两个文件夹,分别是 Preferences 和 Caches。

二:每个目录下存放的文件

1: Documents 目录:用来存储用户数据,应该将所有的应用程序数据文件写入到该目录下。

2:Library 目录:(1)Preferences 目录:包含应用程序的偏好设置文件  (2)Caches 目录:用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。

3:Temp目录:用于存放临时文件,保存应用程序再次启动过程中不需要的信息。

三:获取沙盒目录的方法

获取沙盒目录路径可以通过 NSSearchPathForDirectoriesInDomains 方法,该方法有三个参数:

1:directory NSSearchPathDirectory类型的enum值,表情要搜索的目录名称。

2:domainMask NSSearchPathDomainMask类型的enum值,指定搜索范围。通常情况下是NSUserDomainMask,表示搜索的范围限制于当前应用的沙盒目录。

3:expandTilde Bool值,表示返回的路径中是否展开~。如果是YES,表示展开,NO表示不展开。

获取沙盒目录路径的代码:

// 获取沙盒主目录路径
NSString *homeDir = NSHomeDirectory();
// 获取Documents目录路径
NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
// 获取Library的目录路径
NSString *libDir = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
// 获取Caches目录路径
NSString *cachesDir = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];
// 获取tmp目录路径
NSString *tmpDir =  NSTemporaryDirectory();

第三个参数为YES时的示例路径:

/var/mobile/Applications/DBAC1849-CF0A-435A-98FB-A7472C73EC42/Library/Caches/letuAllClassifyString.plist

第三个参数为NO时的示例路径:

~/Library/Caches/letuAllClassifyString.plist
时间: 2024-10-10 06:47:16

iOS 沙盒目录结构的相关文章

iOS 沙盒目录结构介绍

iOS系统中,每个应用都有自己的沙盒,且应用只能访问其对应的沙盒目录下面的文件.当然,在用户授权的情况下,应用也可以访问其他目录下面的文件.比如,用户授权情况下,应用可以访问相册.通讯录.在开发中,经常会涉及到 iOS 沙盒目录,比如读写文件,归档解档等. 一:沙盒的目录结构 app的沙盒目录结构如下图: 可知,沙盒目录下有三个文件夹:Documents.Library.Temp.其中,Library下面有两个文件夹,分别是 Preferences 和 Caches. 二:每个目录下存放的文件

iOS沙盒目录结构解析

作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/18269713 出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如系统通讯录能在用户授权的情况下被第三方应用访问),这个规则把iOS系统的封闭性展现的淋漓尽致. 一.沙盒中几个主要的目录 每个沙盒下面都有相似的目录结构,如下图所示(出自苹果官方文档): 每个应用的沙盒目录都是相似的,主要包含图中所示的4个目录: 1.MyApp

iOS沙盒目录结构解析 (转)

转自:http://blog.csdn.net/wzzvictory/article/details/18269713 出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如系统通讯录能在用户授权的情况下被第三方应用访问),这个规则把iOS系统的封闭性展现的淋漓尽致. 一.沙盒中几个主要的目录 每个沙盒下面都有相似的目录结构,如下图所示(出自苹果官方文档): 每个应用的沙盒目录都是相似的,主要包含图中所示的4个目录: 1.MyApp.app ①存放内容:该

沙盒目录结构

通过NSHomeDirectory()获取沙盒目录: 获得的沙盒目录结构如下: 从上图中可以看出,沙盒目录中包括三个文件夹:Documents.Library.tmp. 其中Library文件夹下又包括两个文件夹:Caches.Preferences. 下面,就详细介绍这四个目录的作用. Documents:Documents里面的文件是需要同步到iTunes的.苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录.所以,不要把用户下载的一些数

iOS应用程序沙盒目录结构

获取主要目录路径的方式 沙盒目录 NSLog(@"%@",NSHomeDirectory()); MyApp.app NSLog(@"%@",[[NSBundle mainBundle] bundlePath]); tmp NSLog(@"%@",NSTemporaryDirectory()); Documents NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDir

浅谈iOS沙盒目录

原文地址:http://blog.csdn.net/wzzvictory/article/details/18269713 出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如系统通讯录能在用户授权的情况下被第三方应用访问),这个规则把iOS系统的封闭性展现的淋漓尽致. 一.沙盒中几个主要的目录 每个沙盒下面都有相似的目录结构,如下图所示(出自苹果官方文档): 每个应用的沙盒目录都是相似的,主要包含图中所示的4个目录: 1.MyApp.app ①存放内容

iOS--浅谈iOS沙盒目录

原文地址:http://blog.csdn.net/wzzvictory/article/details/18269713 出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如系统通讯录能在用户授权的情况下被第三方应用访问),这个规则把iOS系统的封闭性展现的淋漓尽致. 一.沙盒中几个主要的目录 每个沙盒下面都有相似的目录结构,如下图所示(出自苹果官方文档): 每个应用的沙盒目录都是相似的,主要包含图中所示的4个目录: 1.MyApp.app ①存放内容

IOS沙盒目录

Documents:保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录.例如,游戏应用可将游戏存档保存在该目录 tmp:保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除.应用没有运行时,系统也可能会清除该目录下的文件.iTunes同步设备时不会备份该目录 Library/Caches:保存应用运行时生成的需要持久化的数据,iTunes同步设备时不会备份该目录.一般存储体积大.不需要备份的非重要数据 Library/Preference:保存应用的所有偏好设

沙盒目录结构是怎样的?各自用于那些场景?

Application:存放程序源文件,上架前经过数字签名,上架后不可修改 Documents:常用目录,iCloud备份目录,存放数据(视频音频等等) Library Caches:存放体积大又不需要备份的数据 Preference:设置目录,iCloud会备份设置信息(NSUserDefaults) tmp:存放临时文件,不会被备份,而且这个文件下的数据有可能随时被清除的可能