------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
NSFileManager类
NSFileManager是用来管理文件的,用来进行常见文件夹的操作(拷贝,移动、创建等)。NSFileManager使用了单例模式,使用defaultManager方法来获得单例对象。
1. NSFileManager类常用方法
+ (NSFileManager *)defaultManager //创建文件管理的单例对象
- (BOOL)fileExistsAtPath:(NSString *
)path
//判断路径path是否存在
- (BOOL)fileExistsAtPath:(NSString *
)path
isDirectory:(BOOL *
)isDirectory //判断路径path是否是一个目录
- (BOOL)isReadableFileAtPath:(NSString *
)path //判断文件是否可读
- (BOOL)isWritableFileAtPath:(NSString *
)path //判断文件是否可写
- (BOOL)isDeletableFileAtPath:(NSString *
)path //判断文件是否可删除
常用方法示例代码如下:
//定义一个字符串保存文件路径
NSString *filePath=@"/Users/suise/Pictures/psb.jpg";
//调用defaultManager方法创建一个文件管理的单例对象
NSFileManager *fm=[NSFileManager defaultManager];
//判断该路径是否存在
BOOL isExist=[fm fileExistsAtPath:filePath];
//如果路径存在判读该路径是否是一个目录
if (isExist) {
BOOL isDir;
[fm fileExistsAtPath:filePath isDirectory:&isDir];
if (isDir) {
NSLog(@"This is a directory.");
}else{
NSLog(@"This is not a directory.");
}
}
//判断文件是否可读
BOOL isRead=[fm isReadableFileAtPath:filePath];
//判断文件是否可写
BOOL isWriite=[fm isWritableFileAtPath:filePath];
//判断文件是否可删除
BOOL isDelete=[fm isDeletableFileAtPath:filePath];
2. NSFileManager文件访问
NSString *fileDir=@"/Users/suise/Downloads";
//获取文件的属性信息
NSDictionary *dict=[fm attributesOfItemAtPath:filePath error:nil];
//用递归方式获取指定目录下的文件和文件夹
NSArray *arr1=[fm subpathsAtPath:fileDir];
//用非递归方式获取指定目录下的文件和文件夹
NSArray *arr2=[fm subpathsOfDirectoryAtPath:fileDir error:nil];
//获取指定目录下文件及其子目录信息(不再获取子目录的后代信息)
NSArray *arr3=[fm contentsOfDirectoryAtPath:fileDir error:nil];
3. NSFileManager文件操作
有创建目录、创建文件、拷贝文件、移动文件、删除文件等操作,示例代码如下:
// 文件操作
//定义一个字符串保存目录路径
NSString *createDir=@"/Users/suise/Downloads";
//判断目录是否已经创建,withIntermediateDirectories参数为YES时,会把路径中缺失的目录一同创建,为NO时,目录中缺失的路径不会创建
BOOL isCreate=[fm createDirectoryAtPath:createDir withIntermediateDirectories:YES attributes:nil error:nil];
NSLog(@"isCreate=%d",isCreate);
//定义创建文件的路径
NSString *createFile=@"/Users/suise/Desktop/love.txt";
NSString *str=@"最美的不是下雨天,是与你躲过雨的屋檐";
//把字符串转换成二进制数据
NSData *data=[str dataUsingEncoding:NSUTF8StringEncoding];
//判断文件是否已经被创建
BOOL isCreate2=[fm createFileAtPath:createFile contents:data attributes:nil];
NSLog(@"isCreate2=%d",isCreate2);
//copy文件
//定义一个目标路径
NSString *targetPath=@"/Users/suise/Downloads/love.txt";
//把原路径下的文件copy到目标路径下
BOOL isCopy=[fm copyItemAtPath:createFile toPath:targetPath error:nil];
NSLog(@"isCopy=%d",isCopy);
//移动文件
targetPath=@"/Users/suise/IOS/love.txt";
BOOL isMove=[fm moveItemAtPath:createFile toPath:targetPath error:nil];
NSLog(@"isMove=%d",isMove);
//删除文件
[fm removeItemAtPath:targetPath error:nil];