什么是NSFileManager?
NSFileManager是用来管理文件系统的
它可以用来进行常见的文件\文件夹操作(拷贝、剪切、创建等)NSFileManager使用了单例模式singleton
使用defaultManager方法可以获得那个单例对象
[NSFileManager defaultManager]
//NSFileManager 用于判断
NSString *filePath = @"/Users/zhaoxiaohu/Desktop/arr.plist";
NSString *filePath2 = @"/";
1) 判断文件是否存在
//创建文件管理对象
//调用defaultManager 创建一个文件管理的单例对象
//单例对象:在程序运行期间,只有一个对象存在
NSFileManager *fm = [NSFileManager defaultManager];
// YES 存在 NO 不存在
BOOL isYES = [fm fileExistsAtPath:filePath];
NSLog(@"-->%d",isYES);
2) 判断是否是一个目录
if(isYES){
BOOL isDir;
// 2) 判断是否是一个目录
[fm fileExistsAtPath:filePath isDirectory:&isDir];
if (isDir) {
NSLog(@"这是一个目录");
}else{
NSLog(@"这不是一个目录");
}
}
3) 判断文件是否可读
isYES = [fm isReadableFileAtPath:filePath];
4) 是否可写
isYES = [fm isWritableFileAtPath:filePath2];
5) 是否可删除
isYES = [fm isDeletableFileAtPath:filePath2];
NSLog(@"-->%d",isYES);
6)获取文件的信息(属性)
//创建文件对象
NSFileManager *fm = [NSFileManager defaultManager];
NSString *filePath = @"/Users/zhaoxiaohu/Desktop/arr.plist";
NSString *dirPath = @"/Users/zhaoxiaohu/Desktop/a";
//1)如何获取文件的信息(属性)
NSDictionary *dict = [fm attributesOfItemAtPath:filePath error:nil];
NSLog(@"%@",dict);
NSLog(@"%@,%@",[dict objectForKey:@"NSFileOwnerAccountName"],dict[@"NSFileOwnerAccountName"]);
7)获取指定目录下文件及子目录
//使用递归的方式 获取当前目录及子目录下的所有的文件及文件夹
NSArray *subPaths = [fm subpathsAtPath:dirPath];
//(推荐使用)subpathsOfDirectoryAtPath 不是使用递归的方式获取的
subPaths = [fm subpathsOfDirectoryAtPath:dirPath error:nil];
NSLog(@"subPaths = %@",subPaths);
8)获取指定目录下的文件及目录信息(不在获取后代路径)
subPaths = [fm contentsOfDirectoryAtPath:dirPath error:nil];
NSLog(@"subPaths = %@",subPaths);
9)创建目录
//创建文件管理对象
NSFileManager *fm = [NSFileManager defaultManager];
//如何创建目录 (路径 :/Users/zhaoxiaohu/Desktop/aaa)
NSString *createDirPath = @"/Users/zhaoxiaohu/Desktop/aaa/ccc/bbb/love.txt";
fm createDirectoryAtPath:@"路径" withIntermediateDirectories:YES/NO 创建路径的时候,YES自动创建路径中缺少的目录,NO的不会创建缺少的目录 attributes:属性的字典 error:错误对象
BOOL isYES = [fm createDirectoryAtPath:createDirPath withIntermediateDirectories:YES attributes:nil error:nil];
if (isYES) {
NSLog(@"成功");
}
10)创建文件
//如何创建文件
NSString *str = @"每当我错过一个女孩,我就向山上放一块砖,于是就有了长城";
//writeToFile
//fm createFileAtPath:@"路径" contents: NSData类型的数据 attributes:文件的属性的字典
//创建NSData? 是一个处理二进制数据的类
//NSString -----> NSData (把NSString转化成NSData)
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
BOOL isYes;
// createFileAtPath 创建文件
isYes = [fm createFileAtPath:createDirPath contents:data attributes:nil];
NSLog(@"isYes = %d",isYes);
11)copy文件
//如何copy文件
NSString *targetPath = @"/Users/zhaoxiaohu/Desktop/aaa/ccc/love.txt";
[fm copyItemAtPath:createDirPath toPath:targetPath error:nil];
NSString *targetPath = @"/Users/zhaoxiaohu/Desktop/aaa/love.txt";
12)移动文件
//如何移动文件
[fm moveItemAtPath:createDirPath toPath:targetPath error:nil];
13)删除文件
//如何删除文件
[fm removeItemAtPath:targetPath error:nil];