【重】沙盒大文件存储案例(文件夹路劲可以设置成全局的)
一、创建文件夹和文件
//(1)创建文件夹,并创建文件
//用来存放缓存文件,iTunes不会备份此目录,此目录下的文件不会在程序退出后删除,一般存放体积比较大但又不太重要的文件。
NSString * documentsPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
NSFileManager *fileManager = [NSFileManager defaultManager];//初始化一个文件
//创建文件夹
NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"wenjianjiaName"];
BOOL res1 =[fileManager createDirectoryAtPath:testDirectory withIntermediateDirectories:YES attributes:nil error:nil];
if (res1) {
NSLog(@"文件夹创建成功");
}else{
NSLog(@"文件夹创建失败");
}
//在文件夹下创建文件
NSString *testPath = [testDirectory stringByAppendingPathComponent:@"wenjianjiaName.chaoxi"];
BOOL res2 =[fileManager createFileAtPath:testPath contents:nil attributes:nil];
if (res2) {
NSLog(@"文件创建成功: %@" ,testPath);
}else{
NSLog(@"文件创建失败");
}
二、写入文件
//(2)写入文件(以保存照片为例子)
NSData* imageData = UIImagePNGRepresentation([UIImage imageNamed:@"默认头像"]);
BOOL res3 = [imageData writeToFile:testPath atomically:NO];
if (res3) {
NSLog(@"文件写入成功");
}else{
NSLog(@"文件写入失败");
}
三、读取文件
//(3)读取文件(读取图片时用这个路径)
UIImage * image = [[UIImage alloc]initWithContentsOfFile:testPath];
//获取文件夹下的所有文件名
NSArray *arrayFiles = [[NSFileManager defaultManager] subpathsAtPath:testDirectory];
四、删除文件夹或者文件
//(4)删除文件夹或者文件
NSString * documentsPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
//文件夹
NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"wenjianjiaName"];
//文件路径
NSString *testPath = [testDirectory stringByAppendingPathComponent:@"wenjianjiaName.chaoxi"];
//删除文件夹,删除文件换成testPath路径就可以
BOOL res =[[NSFileManager defaultManager] removeItemAtPath:testDirectory error:nil];
if (res) {
NSLog(@"文件夹删除成功");
}else{
NSLog(@"文件夹删除失败");
}
//附加
NSLog(@"文件是否存在: %@",[[NSFileManager defaultManager] isExecutableFileAtPath:testPath]?@"YES":@"NO");
网友评论