iOS沙盒目录

一、沙盒目录

iPhone的沙箱模型有四个文件夹,分别是documents,tmp,library,app。

获取沙盒主目录

NSString*homePaht = NSHomeDirectory();

documents

这是文档目录,有关App的数据文件缓存在这里。

向documents中写入缓存时候,首先需要获取到文件目录,documents文件路径:

NSString *documentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;

这里documentsPath返回是个数组,但是取firstObject和lastObject应该是一样的,因为这个路径下只有一个文件夹。

app

AppName.app文件夹是应用程序的程序包目录,这个目录下的文件一般不修改。

我们在开发阶段经常要用项目中某个资源文件等,就要获取AppName.app目录路径,然后拿到程序包对应的资源。

NSString  *appPath = [[NSBundle mainBundle] bundlePath];

library

库目录,该目录下有有两级子目录,caches和preferences。

caches目录

缓存目录,用于存储应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。iTunes不会同步此文件夹,适合存储体积大,不需要备份的非重要数据。

NSString  *path = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;

preferences目录

包含应用程序的编号设置文件,存放NSUserDefaults保存的.plist文件。iTunes同步该应用时会同步该文件夹中的内容。

NSUserDefaults  *userDefaults = [NSUserDefaults standardUserDefaults];
//直接调用方法就能保存入偏好设置里面
[userDefaults setObject:@"hello"forKey:@"hello"];
[userDefaults synchronize];

tmp

这个目录用于存放临时文件,只程序终止时需要移除这些文件,当应用程序不再需要这些临时文件时,应该将其从这个目录中删除。

NSString  *tmppath  = NSTemporaryDirectory();

二、主要目录

Documents(NSDocumentDirectory)
用于写入应用相关数据文件的目录,在iOS中写入这里的文件能够与iTunes共享并访问,存储在这里的文件会自动备份到云端。

Library/Caches(NSCachesDirectory)
用于写入应用支持文件的目录,保存应用程序再次启动需要的信息。iTunes不会对这个目录的内容进行备份。

tmp(use NSTemporaryDirectory())
这个目录用于存放临时文件,只程序终止时需要移除这些文件,当应用程序不再需要这些临时文件时,应该将其从这个目录中删除。

Library/Preferences
这个目录包含应用程序的偏好设置文件,使用 NSUserDefault类进行偏好设置文件的创建、读取和修改。

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