NSFileManager:用于执行一般的文件系统操作,主要功能包括:从一个文件中读取数据,向一个文件中写入数据,删除文件,复制文件,移动文件,比较两个文件的内容,测试文件的存在性,读取/更改文件的属性等
访问NSFileManager,使用共享的管理器对象
NSFileManager *fileManager = [NSFileManager defaultManager];
允许对NSFileManager设置代理,用于当文件管理器完成一项操作,如复制或移动文件操作时,接受相应的信息,设置代理时,需要创建自己的NSFileManager实例,而不是使用共享实例
NSFileManager *fileManager = [[NSFileManager alloc] init];
fileManager.delegate = self;
一、判断一个给定路径是否为文件夹
- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(nullable BOOL *)isDirectory;
BOOL createPathOK = YES;
[[NSFileManager defaultManager] fileExistsAtPath:filePath isDirectory:&createPathOK];
二、文件夹/文件的创建
#pragma mark - 文件的创建
-(void)createFile{
//创建文件管理器
NSFileManager *fileManager = [NSFileManager defaultManager];
//指向文件目录(沙盒中的Documents文件夹)
NSString *documentDirectory = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
NSLog(@"%@",documentDirectory);
//在Documents文件夹下创建一个名为“myFolder”的文件夹
[fileManager createDirectoryAtPath:[documentDirectory stringByAppendingPathComponent:@"myFolder"] withIntermediateDirectories:YES attributes:nil error:nil];
//在Documents创建一个文件
NSString *filePath = [documentDirectory stringByAppendingPathComponent:@"file.txt"];
NSString *str = @"用来测试";
//文件中添加内容,生成文件
//对于错误信息
NSError *error;
[str writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error];
}
二、获取文件夹下的文件目录
NSArray *content = [fileManager contentsOfDirectoryAtPath:documentDirectory error:&error];
三、移除路径所到的文件
[fileManager removeItemAtPath:filePath error:&error];
四、路径下是否存在文件
BOOL isExist = [fileManager fileExistsAtPath:filePath];
五、总结
//常见的NSFileManager处理文件的方法如下:
NSFileManager *fileManager = [[NSFileManager alloc] init];
NSData *myData = [fileManager contentsAtPath:path];//从一个文件中读取数据
[fileManager createFileAtPath:path contents:myData attributes:dic];//向一个文件中写入数据,属性字典允许自己制定
[fileManager removeItemAtPath:path error:error];//删除路径所指向的文件或文件夹
[fileManager copyItemAtPath:path1 toPath:path2 error:error];//复制文件内容粘贴到别处
[fileManager fileExistsAtPath:path];//路径下是否存在文件或文件夹
[fileManager enumeratorAtPath:path];//获取目录的内容列表,一次可以枚举指定目录中的每个文件