每一个iOS应用都有一个沙河,用来存储应用相关的文件数据。沙河里面下面有三个子目录,下面介绍这三个目录的作用。
1)/Documents/:存放用户文档和应用数据文件,该目录下面的文件会被itunes同步。
NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
2)/Library/:应用程序规范的顶级目录,下面有一些规范定义的的子目录,当然也可以自定义子目录,用于存放应用的文件,但是不宜存放用户数据文件,和document一样会被itunes同步,但不包括caches子目录
2.1)/Library/Preferences,这里存放程序规范要求的首选项文件,存放应用的偏好设置信息,
[[NSUserDefaults standardUserDefaults] setObject:objc forKey:key]; 平时开发中用这种方式归档就是存放这这个目录。以plist文件格式存储
2.2)/Library/Caches,保存应用的持久化数据,用于应用升级或者应用关闭后的数据保存,不会被itunes同步,所以为了减少同步的时间,可以考虑将一些比较大的文件而又不需要备份的文件放到这个目录下
NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
3)/tmp/,保存应用数据,但不需要持久化的,在应用关闭后,该目录下的数据将删除,也可能系统在程序不运行的时候做清除
NSString *tmpPath = NSTemporaryDirectory();
获取程序的家目录,就是应用程序的根目录;NSString *homePaht = NSHomeDirectory();