一、沙盒目录
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类进行偏好设置文件的创建、读取和修改。
网友评论