沙盒:每一个iOS应用程序都会为自己创建一个文件系统目录(文件夹), 这个独立,封闭, 安全的空间,就叫做沙盒.
iOS的沙盒机制(SandBox)
1, 沙盒是一种安全体系.
2, 他规定了应用程序只能在为该应用程序创建的文件夹(沙盒)内访问文件,不可以访问其他沙盒内的内容(iOS8 已经部分开放访问).
3, 所有的非代码文件都保存在这个地方,比如图片,声音, 属性列表(plist),sqlite数据库和文本文件等.
特点:每个应用程序的活动范围都限定在自己的沙盒里.不能随意跨越自己的沙盒去访问别的应用程序的沙盒.应用程序向外请求或者接受数据都需要经过全县认真.
获取沙盒路径的方法:
NSString *path = NSHomeDirectory();
沙盒文件夹下有三个系统生成的文件夹Documents, Library, tmp
Documents:存放创建保存的数据,iTunes 会自动的备份该目录.
Library:(1)Caches存放缓存文件
(2)Preferences:存放偏好设置,(注意我们直接使用NSUserDefaults 操作该文件夹即可)
tmp: 存储临时文件,比如:下载的zip压缩包,解压后直接删除
NSUserDefaults 直接操作Preferences 文件夹
// 一, 获取Documents 文件夹路径
//1, 查找的文件路径
//2, NSSearchPathDomainMask domainMask:在哪个域中查找,参数
//3, 是否显示详细路径
NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
//二, 获取tmp 目录
NSString *tmpPath = NSTemporaryDirectory();
//三, 获取Library 目录
NSString *libraryPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) firstObject];
//四, 获取Library/Caches 目录
NSString *libCachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];
//五, 获取Library/Preferences 目录
//注意:通常情况下, Preferences 由系统维护,我们只需要通过NSUserDefaults 来操作即可