您的位置:首页 > 其它

沙盒目录详解

2017-02-09 15:27 127 查看
//获取沙盒家目录/*沙盒目录结构:沙盒路径下一般有三个文件夹Documents:这里的数据会跟iCloud进行数据同步,一般存放用户信息等小数据。存放过大数据,会被苹果审核小组拒绝。Library:有些游戏资源会在library下创建子文件夹,进行存储。caches:用来存放缓存,一般应用重新打开,数据不回丢失。据说,当设备容量不足,可能会清除这里的数据。Preferences:NSUserDefaults操作的本地plist文件,就在这里。tmp:临时存储数据的文件夹。应用重新打开可能就会被清理数据。*///这种获取路径方式,最后没有“/”结尾。NSLog(@"homeDir:%@",NSHomeDirectory());NSLog(@"homeDir:%@",NSHomeDirectoryForUser(NSUserName()));//2//直接获取documents文件夹路径NSLog(@"documents:%@",NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0]);//直接获取library文件夹路径NSLog(@"library:%@",NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)[0]);//直接获取caches文件夹路径NSLog(@"caches:%@",NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0]);//沙盒路径实例方法-(NSString *)cachesPathWith:(NSString *)fileName{//获取沙盒缓存文件夹路径NSString * cachesPath=NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];NSLog(@"%@",cachesPath);//拼接出一个缓存目录下的子目录NSString * testPath=[cachesPath stringByAppendingPathComponent:@"test"];NSLog(@"%@",testPath);//判断目录是否在磁盘真实存在,不存在,需要创建,否则会写文件失败;NSFileManager * FM=[NSFileManager defaultManager];if (![FM fileExistsAtPath:testPath isDirectory:NULL]) {//创建路径。[FM createDirectoryAtPath:testPath withIntermediateDirectories:YES attributes:nil error:nil];}//拼接进文件名称。NSString * filePath=[testPath stringByAppendingFormat:@"/%@",fileName];NSLog(@"%@",filePath);return filePath;}字符串读写//获取需要写入的沙盒文件路径NSString * filePath=[selfcachesPathWith:@"k.txt"];//字符串写文件NSError * error=nil;BOOL res=[@"tian cangcang,ye mangmang"writeToFile:filePath atomically:YESencoding:NSUTF8StringEncodingerror:&error];if (res) {NSLog(@"字符串写入成功");}else{NSLog(@"写入失败%@",error);}//读取数据;NSString * txtStr=[NSStringstringWithContentsOfFile:filePathencoding:NSUTF8StringEncodingerror:nil];NSLog(@"txt:%@",txtStr);字典读写//获取缓存路径NSString * dicPath=[selfcachesPathWith:@"dic.plist"];//把字典对象写入plist文件BOOL res=[@{@"2":@"two",@"3":@"three"}writeToFile:dicPath atomically:YES];if (res) {NSLog(@"写入成功");}else{NSLog(@"写入失败");}//读取plist文件NSDictionary * theDic=[NSDictionarydictionaryWithContentsOfFile:dicPath];NSLog(@"%@",theDic);数组读写//获取沙盒文件路径。NSArray对象使用plist文件进行读写操作NSString * arrayPath=[selfcachesPathWith:@"array.plist"];//写文件[@[@"ABC",@[@"DEF"]]writeToFile:arrayPath atomically:YES];//读文件:区分plist文件用Array还是Dictionary接收,看最外层。NSArray * outArr=[NSArrayarrayWithContentsOfFile:arrayPath];NSLog(@"%@",outArr);数据流读写//获取图片路径,指向程序包NSString * imgPath=[[NSBundlemainBundle]pathForResource:@"wc"ofType:@"png"];NSLog(@"->%@",imgPath);//读成data数据NSData * imgData=[NSDatadataWithContentsOfFile:imgPath];//获取要写入的沙盒路径NSString * imgSandboxPath=[selfcachesPathWith:@"tolet.png"];//数据写入本地文件[imgData writeToFile:imgSandboxPathatomically:YES];//读取二进制NSData * imgOutData=[NSDatadataWithContentsOfFile:imgSandboxPath];NSLog(@"%@",imgOutData);

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: