NSFileManager
- 文件操作在开发中用到的比较少,最常用的就是计算缓存的大小,删除缓存目录下的文件之类的
常用方法
NSFileManager *manager = [NSFileManager defaultManager];
// 判断一个文件或者文件夹是否存在
BOOL flag = [manager fileExistsAtPath:@"/Users/coder/Desktop/video"];
// 判断一个文件或者文件夹是否存在,并且判断是否是文件夹
// 返回值说明传入的路径是否存在,isDirectory的值才表明是否是目录
BOOL dir = NO;
BOOL flag1 = [manager fileExistsAtPath:@"/Users/coder/Desktop/sublime.txt" isDirectory:&dir];
// 获取文件或者文件夹属性
NSDictionary *info = [manager attributesOfItemAtPath:@"/Users/coder/Desktop/sublime.txt" error:nil];
// 获取文件夹下所有的文件
// contentsOfDirectoryAtPath:方法只能获取当前文件夹下所有的文件,不能获取子文件夹下面的文件
NSArray *res = [manager contentsOfDirectoryAtPath:@"/Users/coder/Desktop" error:nil];
// 获取path的所有子路径
NSArray *res1 = [manager subpathsAtPath:@"/Users/coder/Desktop"];
NSArray *res2 = [manager subpathsOfDirectoryAtPath:@"/Users/coder/Desktop" error:nil];
// 创建文件夹
// createDirectoryAtPath:需要在什么地方创建文件夹
// withIntermediateDirectories:如果指定的文件中有一些文件夹不存在,是否自动创建不存在的文件夹
// attributes:指定创建出来的文件夹的属性
// error:是否创建成功,如果失败会给传入的参数赋值
// 注意:该方法只能用于创建文件夹,不能创建文件
BOOL flag2 = [manager createDirectoryAtPath:@"/Users/coder/Desktop/111111/qwe" withIntermediateDirectories:YES attributes:nil error:nil];
// 创建文件
// createFileAtPath:指定文件创建的位置
// contents:文件中的内容
// attributes:创建出来文件的属性
// 注意:该方法只能用于创建文件,不能创建文件夹
NSString *str = @"123123123";
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
[manager createFileAtPath:@"/Users/coder/Desktop/111111/qwe/1.txt" contents:data attributes:nil];
不常用方法(了解)
// 判断目录是否可读
BOOL flag1 = [manager isReadableFileAtPath:@"/Users/coder/Desktop/123"];
// 判断目录是否可写
BOOL flag2 = [manager isWritableFileAtPath:@"/Users/coder/Desktop/123"];
// 判断目录是否可删除
BOOL flag3 = [manager isDeletableFileAtPath:@"/Users/coder/Desktop/123"];
// 读取文件内容
NSData *data = [manager contentsAtPath:@"/Users/coder/Desktop/sublime.txt"];
// 拷贝文件
[manager copyItemAtPath:@"/Users/coder/Desktop/sublime.txt" toPath:@"/Users/coder/Desktop/123.txt" error:nil];
// 移动文件
[manager moveItemAtPath:@"/Users/coder/Desktop/123.txt" toPath:@"/Users/coder/Desktop/sublime1.txt" error:nil];
// 删除
[manager removeItemAtPath:@"/Users/coder/Desktop/sublime1.txt" error:nil];