iOS 持久化存储-沙盒文件增删查
2017-07-21 11:06
204 查看
#pragma mark ————————— 查询文件内容 —————————————
+ (id)fetchPlistFromName:(NSString *)name {
NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *path=[paths
objectAtIndex:0];
NSLog(@"path = %@",path);
NSString *allNmme = [NSString
stringWithFormat:@"%@.plist",name];
NSString *filename=[path
stringByAppendingPathComponent:allNmme];
id arr = [NSMutableArray
arrayWithContentsOfFile:filename];
NSLog(@"查询结果=%@=",arr);
return arr;
}
#pragma mark ————————— 写入 —————————————
+ (BOOL)addplistFromName:(NSString *)name data:(id)data {
NSLog(@"写入plist=%@=",data);
//1. 创建一个plist文件
NSArray *paths =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *path = [paths
objectAtIndex:0];
NSLog(@"path = %@",path);
NSString *allNmme = [NSString
stringWithFormat:@"%@.plist",name];
NSString *filename=[path
stringByAppendingPathComponent:allNmme];
if ([self
isPlistFileExists:name]==YES) {
// 获取旧数据 新数据组合写入
NSMutableArray *farr = [NSMutableArray
array];
farr = [self
fetchPlistFromName:name];
if (farr.count >
0) {
// 查询后结果 添加上数据
[farr addObject:data];
NSLog(@"有原始数据 = %@",farr);
return [farr
writeToFile:filename atomically:YES];
}else{
NSLog(@"无原始数据 = %@",farr);
NSMutableArray *arrall = [NSMutableArray
array];
[arrall addObject:data];
return [arrall
writeToFile:filename atomically:YES];
}
}else{
NSFileManager* fm = [NSFileManager
defaultManager];
// 创建plist
[fm createFileAtPath:filename
contents:nil
attributes:nil];
// 写入plist
NSMutableArray *arrall = [NSMutableArray
array];
[arrall addObject:data];
return [arrall
writeToFile:filename atomically:YES];
}
}
#pragma mark ————————— 删除单个 —————————————
+ (void)delFromName:(NSString *)name index:(NSUInteger)index {
NSArray *paths =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *path = [paths
objectAtIndex:0];
NSLog(@"path = %@",path);
NSString *allNmme = [NSString
stringWithFormat:@"%@.plist",name];
NSString *filename=[path
stringByAppendingPathComponent:allNmme];
if ([self
isPlistFileExists:name]==YES) {
// 获取旧数据 新数据组合写入
NSMutableArray *farr = [NSMutableArray
array];
farr = [self
fetchPlistFromName:name];
// 查询后结果 添加上数据
[farr removeObjectAtIndex:index];
[farr writeToFile:filename
atomically:YES];
}else{
}
}
#pragma mark ————————— 判断沙盒中名为plistname的文件是否存在 —————————————
+ (BOOL) isPlistFileExists:(NSString *)name{
NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *path=[paths
objectAtIndex:0];
NSLog(@"path = %@",path);
NSString *allNmme = [NSString
stringWithFormat:@"%@.plist",name];
NSString *filename=[path
stringByAppendingPathComponent:allNmme];
NSFileManager *fileManager = [NSFileManager
defaultManager];
if([fileManager
fileExistsAtPath:filename] == NO) {
NSLog(@"plistname的文件 NO 存在");
return NO;
}else{
NSLog(@"plistname的文件存在");
return YES;
}
}
#pragma mark ————————— 删除文件 —————————————
+ (BOOL)deletePlistFromPlistNmame:(NSString *)name {
NSString *allNmme = [NSString
stringWithFormat:@"%@.plist",name];
//清除plist文件,可以根据我上面讲的方式进去本地查看plist文件是否被清除
NSFileManager *fileMger = [NSFileManager
defaultManager];
NSString *xiaoXiPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:allNmme];
//如果文件路径存在的话
BOOL bRet = [fileMger
fileExistsAtPath:xiaoXiPath];
if (bRet) {
NSLog(@"清空了屏蔽");
NSError *err;
BOOL remove = [fileMger
removeItemAtPath:xiaoXiPath error:&err];
return remove;
}else{
NSLog(@"不存在");
return YES;
}
}
+ (id)fetchPlistFromName:(NSString *)name {
NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *path=[paths
objectAtIndex:0];
NSLog(@"path = %@",path);
NSString *allNmme = [NSString
stringWithFormat:@"%@.plist",name];
NSString *filename=[path
stringByAppendingPathComponent:allNmme];
id arr = [NSMutableArray
arrayWithContentsOfFile:filename];
NSLog(@"查询结果=%@=",arr);
return arr;
}
#pragma mark ————————— 写入 —————————————
+ (BOOL)addplistFromName:(NSString *)name data:(id)data {
NSLog(@"写入plist=%@=",data);
//1. 创建一个plist文件
NSArray *paths =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *path = [paths
objectAtIndex:0];
NSLog(@"path = %@",path);
NSString *allNmme = [NSString
stringWithFormat:@"%@.plist",name];
NSString *filename=[path
stringByAppendingPathComponent:allNmme];
if ([self
isPlistFileExists:name]==YES) {
// 获取旧数据 新数据组合写入
NSMutableArray *farr = [NSMutableArray
array];
farr = [self
fetchPlistFromName:name];
if (farr.count >
0) {
// 查询后结果 添加上数据
[farr addObject:data];
NSLog(@"有原始数据 = %@",farr);
return [farr
writeToFile:filename atomically:YES];
}else{
NSLog(@"无原始数据 = %@",farr);
NSMutableArray *arrall = [NSMutableArray
array];
[arrall addObject:data];
return [arrall
writeToFile:filename atomically:YES];
}
}else{
NSFileManager* fm = [NSFileManager
defaultManager];
// 创建plist
[fm createFileAtPath:filename
contents:nil
attributes:nil];
// 写入plist
NSMutableArray *arrall = [NSMutableArray
array];
[arrall addObject:data];
return [arrall
writeToFile:filename atomically:YES];
}
}
#pragma mark ————————— 删除单个 —————————————
+ (void)delFromName:(NSString *)name index:(NSUInteger)index {
NSArray *paths =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *path = [paths
objectAtIndex:0];
NSLog(@"path = %@",path);
NSString *allNmme = [NSString
stringWithFormat:@"%@.plist",name];
NSString *filename=[path
stringByAppendingPathComponent:allNmme];
if ([self
isPlistFileExists:name]==YES) {
// 获取旧数据 新数据组合写入
NSMutableArray *farr = [NSMutableArray
array];
farr = [self
fetchPlistFromName:name];
// 查询后结果 添加上数据
[farr removeObjectAtIndex:index];
[farr writeToFile:filename
atomically:YES];
}else{
}
}
#pragma mark ————————— 判断沙盒中名为plistname的文件是否存在 —————————————
+ (BOOL) isPlistFileExists:(NSString *)name{
NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *path=[paths
objectAtIndex:0];
NSLog(@"path = %@",path);
NSString *allNmme = [NSString
stringWithFormat:@"%@.plist",name];
NSString *filename=[path
stringByAppendingPathComponent:allNmme];
NSFileManager *fileManager = [NSFileManager
defaultManager];
if([fileManager
fileExistsAtPath:filename] == NO) {
NSLog(@"plistname的文件 NO 存在");
return NO;
}else{
NSLog(@"plistname的文件存在");
return YES;
}
}
#pragma mark ————————— 删除文件 —————————————
+ (BOOL)deletePlistFromPlistNmame:(NSString *)name {
NSString *allNmme = [NSString
stringWithFormat:@"%@.plist",name];
//清除plist文件,可以根据我上面讲的方式进去本地查看plist文件是否被清除
NSFileManager *fileMger = [NSFileManager
defaultManager];
NSString *xiaoXiPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:allNmme];
//如果文件路径存在的话
BOOL bRet = [fileMger
fileExistsAtPath:xiaoXiPath];
if (bRet) {
NSLog(@"清空了屏蔽");
NSError *err;
BOOL remove = [fileMger
removeItemAtPath:xiaoXiPath error:&err];
return remove;
}else{
NSLog(@"不存在");
return YES;
}
}
相关文章推荐
- 数据持久化的本质 - 数据保存成文件,存储到程序的沙盒中 -在应用程序结束时,将内存中的数据以文件的形式搬到(保存到)硬盘中
- ios沙盒机制及文件存储操作
- iOS 沙盒机制 持久存储 读写文件 NSFileManager
- IOS数据存储之文件沙盒存储
- ios沙盒机制及文件存储操作
- IOS 获得项目中info.plist文件的内容 2.沙盒的数据存储及读取 3.控制器view的高度和状态栏statusBar
- iOS文件使用总结(数据持久化存储)
- IOS数据存储之文件沙盒存储
- iOS-数据存储之沙盒文件
- iOS 【沙盒目录及文件存储相关】
- IOS学习 沙盒位置,沙盒存储的三种方式:plist文件,偏好设置,归档
- iOS沙盒文件存储
- iOS真机沙盒文件查看 图片批量存储/获取/删除
- [iOS]数据持久化-沙盒存储
- IOS之分析网易新闻存储数据(CoreData的使用,增删改查)
- IOS沙盒(sandbox)机制和文件操作(三)
- 详解Android开发数据持久化之文件存储(附源码)
- ios-day12-01(ios开发中的数据存储的常用方式有哪些、应用沙盒目录结构、应用沙盒目录路径的常见获取方式)
- iOS 寻找沙盒文件路径
- iOS学习之iOS沙盒(sandbox)机制和文件操作(一)