1.文件存储
ios沙盒机制:应用程序只能访问该应用程序在文件系统中创建的目录,
Documents文件夹:文档文件夹,存放持久化的数据,
library文件夹:caches:存放缓存文件,重启或退出程序时,数据不会丢失
Perferences:偏好设置,存放用户设置信息
tmp文件夹:存放临时的缓存数据,在重启或退出程序时清空;
基本文件操作:
- (void)viewDidLoad
{
[super viewDidLoad];
// 文件管理者
// NSFileManager
//创建文件管理对象
NSFileManager *fm = [NSFileManager defaultManager];
//获取Documents文件夹路径
NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentPath = [array objectAtIndex:0];
// 创建文件夹
// 1.创建文件夹的路径
NSString *directoryPath = [documentPath stringByAppendingPathComponent:@"testFile"];//设置文件夹路径,stringByAppendingPathComponent方法会自动用"/"分隔形成完整路径,
[fm createDirectoryAtPath:directoryPath withIntermediateDirectories:YES attributes:nil error:nil];
// 2.创建文件
// 拼接文件的路径
NSString *filePath = [directoryPath stringByAppendingPathComponent:@"file"];
// NSData 用来包装数据的
// 存的都是二进制数据
// 可以存各种数据 字符串 音频 图像 数组 字典
// 把字符串转换成data
NSString *string = @"你好";
// UTF8 编码
NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
// 创建文件
[fm createFileAtPath:filePath contents:data attributes:nil];
// 判断文件是否存在
BOOL success = [fm fileExistsAtPath:filePath];
NSLog(@"是否存在文件%d",success);
// 来获取某个路径下的所有文件的路径
NSArray *subpathArray = [fm subpathsAtPath:directoryPath];
for (NSString *path in subpathArray)
{
NSLog(@"---->%@",path);
}
NSString *path2 = [directoryPath stringByAppendingPathComponent:@"file副本"];
// 判断内容是否相等
// contentsEqualAtPath
BOOL success1 = [fm contentsEqualAtPath:filePath andPath:path2];
NSLog(@"success1 == %d",success1);
// 移动某路径下的元素到另外一个路径
NSString *destinationPath = [NSHomeDirectory() stringByAppendingPathComponent:@"a.txt"];
// 把文件移动到某文件路径(而不是指的目录)
[fm moveItemAtPath:filePath toPath:destinationPath error:nil];
// 复制到某个文件路径下
[fm copyItemAtPath:destinationPath toPath:filePath error:nil];
// 移除某路径下的文件
[fm removeItemAtPath:filePath error:nil];
}