直接上操作
效果:将一张图片写入文件 (图片本身已经在Assets.xcassets里面了)
1.获取当前app的沙盒路径
NSString *documentPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).lastObject; /* 1.第一个参数 获取什么路径 最常用:NSDocumentationDirectory 2.第二个参数 常用 NSUserDomainMask 用户可以操作的路径 3.第三个 是否展开 一般 yes */ NSLog(@"%@",documentPath);
最后一句可以打印获得的地址字符串
2.在当前目录下创建一个文件
a.拼接需要创建的文件的完整路径
1 //NSString *filePath = [documentPath stringByAppendingString:@"/1.jpg"]; 2 //使用这个方法注意不要缺反斜杠 3 //a.拼接需要创建的文件的完整路径 4 NSString *filePath = [documentPath stringByAppendingPathComponent:@"1.jpg"]; 5
b.创建文件 NSFileManager 文件里面保存的都是二进制数据
1 //2.创建文件 NSFileManager 文件里面保存的都是二进制数据 2 [[NSFileManager defaultManager]createFileAtPath:filePath contents:nil attributes:nil];
3.写入数据 将一张图片写入文件,文件中保存的数据都是二进制的形式,因此需要将写入的内容转化为二进制 uiimage->nsdata
1 UIImage *img = [UIImage imageNamed:@"1"]; 2 NSData *imgData = UIImagePNGRepresentation(img); 3 4 [imgData writeToFile:filePath atomically:YES];
可见,图片已经存入文件里
4.文件删除
1 [[NSFileManager defaultManager]removeItemAtPath:filePath error:nil];
5.从文件中读取图片
1 NSData *d = [NSData dataWithContentsOfFile:filePath]; 2 UIImage *im = [UIImage imageWithData:d]; 3 //注意这里的filePath 就是上面我们拼接的那个路径