应用沙盒的结构
每个应用程序都有三个文件夹
分别是:
Documents
Library
tmp
Documents:保存应用运行时生成的需要持久化的数据,iTunes同步时候会备份改目录 (例如一些数据需要存档) Library/Caches:保存应用运行时生成的需要持久化的数据。iTunes同步时,不会备份改目录, (一般用来存储体积比较大,不需要备份的数据) Library/Preference:保存应用的所有偏好设置,iOS的设置会在该目录中查找应用的设置信息,iTunes同时会备份改目录 tmp:保存应用运行时所需要的临时数据,在应用没有运行时,系统会自动清楚该目录,iTunes同时不会备份改目录
我们在开发过程中有两种获取(Documents)方式
1:利用沙盒根目录拼接“Documents”字符串
第一种方式 NSString *home = NSHomeDictory(); NSString *documents = [home stringByAppendingPathComponent:@"Documents"];
第二种方式 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); // 在iOS中,只有一个目录跟传入的参数匹配,所以这个集合里面只有一个元素 NSString * documents = [paths objectAtIndex:0]; // 不建议采用,因为新版本的操作系统可能会修改目录名 // NSUserDomainMask 代表从用户文件夹下找 // YES 代表展开路径中的波浪字符“~”
获取Caches目录路径的方法: NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); NSString *cachesDir = [paths objectAtIndex:0];