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

------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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值