ios的沙盒机制,应用只能访问自己应用下的文件。ios应用产生的内容,如图像、文件、缓存内容都必须存储在自己的沙盒内,每个沙盒有3个文件夹:Documents、Library、tmp。
Documents:苹果建议将程序创建产生的文件以及应用浏览产生的文件数据保存在该目录下,iTunes备份和恢复的时候包含次目录。
Library/Preferences:存储程序的默认设置或其他状态信息NSUserDefault
Library/Caches:存放缓存文件,保存应用的持久化数据,用于应用升级或者关闭后数据的保存,不会被iTunes同步,所以为了减少同步的时间,可以考虑将一些比较大的文件而又不需要备份的文件放到这个目录下。
tmp:提供了一个即时创建临时文件的地方,但不需要持久化,在应用关闭后,该目录下的数据将删除,也可能系统在程序不运行的时候清除。
一、获取沙盒根路径
NSString *homePaht = NSHomeDirectory();
二、获取Documents目录路径
方法一:NSString *documentsPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];//在获取根路径的基础上,拼接文件地址
方法二:NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
三、获取Library/Preferences目录路径
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *PreferenceDirectory = [paths objectAtIndex:0];
四、获取Library/Caches路径
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cacheDirectory = [paths objectAtIndex:0];
五、获取tmp路径
NSString *tmpDirectory = NSTemporaryDirectory();