获取沙盒根路径
NSString * homePath=NSHomeDirectory();
找到该文件夹,可以发现该路径下有几个文件夹
- Documents
- Library
/Caches
/Preferences - SystemData
- tmp
那么,他们的获取方式和作用是什么呢?
- Documents
保存应用运行时生成的需要持久化的数据iTunes会自动备份该目录。苹果建议将在应用程序中浏览到的文件数据保存在该目录下,不能保存过大的文件。
NSString * docPath=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)firstObject];
- Library/Caches
一般存储的是缓存文件,例如图片视频等,此目录下的文件不会再应用程序退出时删除,在手机备份的时候,iTunes不会备份该目录。
NSString * libPath=[NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)firstObject];
NSLog(@"libPath:%@",libPath);
NSString * cachePath=[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)firstObject];
NSLog(@"cachePath:%@",cachePath);
- Library/Preferences
保存应用程序的所有偏好设置iOS的Settings(设置),我们不应该直接在这里创建文件,而是需要通过NSUserDefault这个类来访问应用程序的偏好设置。iTunes会自动备份该文件目录下的内容。
//直接通过NSUserDefaults进行存取
[[NSUserDefaults standardUserDefaults]setObject:@"a" forKey:@"a"];
[[NSUserDefaults standardUserDefaults]valueForKey:@"a"];
Library/子文件夹
可创建子文件夹,用来放置您希望被备份但不希望被用户看到的数据。该路径下的文件夹,除Caches以外,都会被iTunes备份。tmp
临时文件目录,在程序重新运行的时候,和开机的时候,会清空tmp文件夹。
NSString * tempPath=NSTemporaryDirectory();