NSFileManager:用来操作磁盘上的文件/文件夹,主要对它们进行创建、删除、复制、拷贝、移动以及设置和获取属性
常用方法
//单例模式创建对象
NSFileManager *manager = [NSFileManager defaultManager];
NSString *path1 = @"/Users/frank/Desktop/Demo";
NSString *path2 = @"/Users/frank/Desktop/demo.txt";
//判断指定的文件或者文件夹在磁盘上是否真实存在
BOOL isExist = [manager fileExistsAtPath:path1];
//判断指定的路径是否真实的存储在磁盘上,并且判断这个路径是文件夹路径还是文件路径
BOOL flag =NO;
BOOL ressult = [manager fileExistsAtPath:path1 isDirectory:&flag];
//判断指定的文件夹或者文件是否可以读取
BOOL isRead = [manager isReadableFileAtPath:path2];
//判断指定的文件夹或者文件是否可以写入
BOOL isWriter = [manager isWritableFileAtPath:path2];
//判断指定的文件夹或者文件是否可以删除
BOOL isDelete = [manager isDeletableFileAtPath:path2];
//获取指定文件或者文件夹的属性信息(通过key,可以拿到特定的信息)
NSDictionary *dict = [manager attributesOfItemAtPath:path2 error:nil];
//获取指定目录下的所有的文件和目录(包括子目录的子目录)
NSArray *arr1 = [manager subpathsAtPath:path1];
//获取指定目录下的所有子目录和文件(不包括子目录的子目录)
NSArray *arr2 = [manager contentsOfDirectoryAtPath:path1 error:nil];
//在指定的目录创建文件
NSData *data = [@"你好" dataUsingEncoding:NSUTF8StringEncoding];
BOOL isSucceed = [manager createFileAtPath:@"/Users/frank/Desktop/hello.txt" contents:data attributes:nil];
//在指定的目录创建文件夹
/**
第1个参数:路径
第2个参数:YES就会连续创建文件夹;NO就不会做连续创建
第3个参数:指定属性,nil为系统默认属性
第4个参数:错误
*/
BOOL isSucceed1 = [manager createDirectoryAtPath:@"/Users/frank/Desktop/test"
withIntermediateDirectories:NO attributes:nil error:nil];
//拷贝文件
BOOL isSucc = [manager copyItemAtPath:@"/Users/frank/Desktop/hello.txt" toPath:@"/Users/frank/Desktop/test/hello.txt" error:nil];
//移动文件,文件的重命名(文件移动到原来的目录,名称改变)
BOOL isSucc1 = [manager moveItemAtPath:@"/Users/frank/Desktop/hello.txt" toPath:@"/Users/frank/Desktop/demo/hello.txt" error:nil];
//删除文件
BOOL isSucc2 = [manager removeItemAtPath:@"/Users/frank/Desktop/hello.txt" error:nil];