黑马程序员——Foundation框架——NSFileManager

来源:互联网 发布:cinema 4d软件 编辑:程序博客网 时间:2024/05/03 07:58

------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];



0 0
原创粉丝点击