- NSFileManager:是用来管理文件系统的,它可以用来进行常见的文件\文件夹操作
- 获取NSFileManager示例
[NSFileManager defaultManager]
增删改查
1. 创建文件夹
- (void)createFolder {NSString *documentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];NSString *folderPath = [documentsPath stringByAppendingPathComponent:@"selfFolder"];NSError *error;BOOL temp = [[NSFileManager defaultManager] createDirectoryAtPath:folderPath withIntermediateDirectories:YES attributes:nil error:&error];if (temp) {NSLog(@"文件夹创建成功:%@", folderPath);} else {NSLog(@"文件夹创建失败\n失败原因:%@", error);}
}
2. 创建文件
- (void)createFile {NSString *documentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];NSString *folderPath = [documentsPath stringByAppendingPathComponent:@"selfFolder"];NSString *testPath = [folderPath stringByAppendingPathComponent:@"selfFile.txt"];BOOL temp = [[NSFileManager defaultManager] createFileAtPath:testPath contents:nil attributes:nil];if (temp) {NSLog(@"文件创建成功:%@", testPath);} else {NSLog(@"文件创建失败");}
}
3. 向文件中写入数据
- (void)writeDataToFile {NSString *documentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];NSString *folderPath = [documentsPath stringByAppendingPathComponent:@"selfFolder"];NSString *filePath = [folderPath stringByAppendingPathComponent:@"selfFile.txt"];NSString *content = @"hello world";NSError *error;BOOL temp = [content writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error];if (temp) {NSLog(@"文件写入成功:%@", filePath);} else {NSLog(@"文件写入失败\n失败原因:%@", error);}
}
4. 删除文件
- (void)deleteFile {NSString *documentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];NSString *folderPath = [documentsPath stringByAppendingPathComponent:@"selfFolder"];NSString *filePath = [folderPath stringByAppendingPathComponent:@"selfFile.txt"];NSError *error;BOOL temp = [[NSFileManager defaultManager] removeItemAtPath:filePath error:&error];if (temp) {NSLog(@"文件删除成功");} else {NSLog(@"文件删除失败\n失败原因:%@", error);}
}
5. 从文件中读取数据
- (void)readFile {NSString *documentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];NSString *folderPath = [documentsPath stringByAppendingPathComponent:@"selfFolder"];NSString *filePath = [folderPath stringByAppendingPathComponent:@"selfFile.txt"];NSError *error;NSString *content = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error];if (!error) {NSLog(@"文件读取成功:%@", content);} else {NSLog(@"文件写入失败\n失败原因:%@", error);}
}
常用工具方法
1. 判断文件是否存在
[[NSFileManager defaultManager] fileExistsAtPath:filePath]
2. 判断是否为一个目录
[[NSFileManager defaultManager] fileExistsAtPath:filePath isDirectory:&isDir]
3. 判断文件是否可读
[[NSFileManager defaultManager] isReadableFileAtPath:filePath]
4. 是否可写
[[NSFileManager defaultManager] isWritableFileAtPath:filePath]
5. 是否可删除
[[NSFileManager defaultManager] isDeletableFileAtPath:filePath]
6. 获取文件属性
NSDictionary *dict = [[NSFileManager defaultManager] attributesOfItemAtPath:filePath error:nil];
7. copy文件
[[NSFileManager defaultManager] copyItemAtPath:path1 toPath:path2 error:nil];
8. 移动文件
[[NSFileManager defaultManager] moveItemAtPath:createDirPath toPath:targetPath error:nil];NSF