OC文件操作




#import <Foundation/Foundation.h>

#define PATH @"/Users/IOS1601/Desktop/fanjuan/OC/OC第二周/第四天:文件操作"

int main(int argc, const char * argv[]) {

    @autoreleasepool {

//NSFileManager是一个专门用来管理文件和文件夹的类,通过一系列的对象方法:

//1.创建一个NSFileManager对象(单例对象)

        //系统提供的单例方法一般是以default开头的

        NSFileManager * fileManager = [NSFileManager defaultManager];


        //方法一:浅度遍历:返回当前目录下所有文件或者文件夹的名字

        //(参数一:文件夹的绝对路径)

        //(参数二:)错误信息;如果成功遍历,NSError返回空,否则返回错误信息

        NSError *error;//NSErrorOC中用来存储错误信息的类,一般不要程序给他赋值

        NSArray *array1 =[fileManager contentsOfDirectoryAtPath:PATH

                                                          error:&error];

        //判断遍历是否成功

        if (error == nil) {

            NSLog(@"遍历成功");

            NSLog(@"%@",array1);

        }else {

            NSLog(@"遍历失败");

            NSLog(@"%@",error);

        }

        //方法二:深度遍历:遍历出当前目录下所有文件和文件夹的名字

        //包括子目录下的文件和文件夹的相对路径名

        //参数一:文件夹的路径  参数二:错误信息;

        error = nil;

      NSArray * array2 = [fileManager subpathsOfDirectoryAtPath:PATH error:&error];

        NSLog(@"深度遍历:%@",array2);

        

        //方法三:创建文件夹:在指定的路径下创建一个文件夹;

        //参数一:路径(已经创建好的文件夹路径,即加上即将创建的文件夹的名字;

        //参数二:是否创建中间目录 参数三:attributes文件夹属性,传入nil表示默认属性 参数四:错误信息;

        //返回值:BOOL是否创建成功;成功返回YES,失败返回NO;

        //拼接出新建文件夹的路径:(表示创建一个c的文件夹)

        NSString * newPath = [NSString stringWithFormat:@"%@/d/c",PATH];

        BOOL ret = [fileManager createDirectoryAtPath:newPath

                          withIntermediateDirectories:YES

                        attributes:nil error:nil];

        if (ret) {

            NSLog(@"创建文件夹成功!");

        }else{

            NSLog(@"创建文件夹失败!");

        }

        //方法四:创建文件:

        //参数一:路径,文件已经创建好了的时候的路径

        //参数二:文件的内容(二进制形式,将数据存到文件中或者从文件中取出数据,这个数据类型都是二进制);

        //参数三:文件属性nil

        //返回值:是否创建成功;

        

        //专门用来拼接路径的方法

        NSString * newPath2 = [PATH stringByAppendingPathComponent:@"file.txt"];

        //创建放进文件的内容

        NSString * content = @"hello world!";

        

        //将字符串转换成NSData

        NSData * data  = [content dataUsingEncoding:NSUTF8StringEncoding];

        

        

        BOOL ret2 = [fileManager createFileAtPath:newPath2 contents:data attributes:nil];

        if (ret2) {

            NSLog(@"文件创建成功");

        }else{

            NSLog(@"文件创建失败");

        }

        //方法五:删除文件或者文件夹

        //参数1:要删除的文件/文件夹的路径

        //参数2:错误信息

        //返回值:是否删除成功

//        BOOL ret3 = [fileManager removeItemAtPath:

//                        [PATH stringByAppendingPathComponent:@"file.txt"]

//                                            error:nil];

//        if (ret3) {

//            NSLog(@"删除成功");

//        }else{

//            NSLog(@"删除失败");

//        }

        

        //方法六:判断文件/文件夹是否存在

        //参数1:文件/文件夹的路径

        //返回值:是否存在

        BOOL ret4 = [fileManager fileExistsAtPath:[PATH stringByAppendingPathComponent:@"file.txt"]];

        if (ret4) {

            NSLog(@"存在");

        }else{

            NSLog(@"不存在");

        }

        

        //方法七:判断文件/文件夹是否存在并且判断是文件还是文件夹

        //参数1:路径    参数2:用来存储是否是文件夹的结果,如果是文件夹,

        //这个参数指向的变量值会变成YES,否则是NO;

        //返回值:文件或者文件夹是否存在

        BOOL ret6 = NO;

      BOOL ret5 =   [fileManager fileExistsAtPath:[PATH

                   stringByAppendingPathComponent:@"d"] isDirectory:&ret6];

        //判断是否存在

        if (ret5) {

            NSLog(@"存在");

            //判断是否是文件夹

            if(ret6){

                NSLog(@"是文件夹");

            }else{

                NSLog(@"不是文件夹");

            }

        }else{

            NSLog(@"不存在");

        }

        

        //方法八:获取文件/文件夹的属性

        //返回是一个字典

        NSDictionary *dict = [fileManager attributesOfItemAtPath:[PATH

                        stringByAppendingPathComponent:@"file.txt"]

                                                           error:nil];

        NSLog(@"%@",dict);

        //方法九:拷贝文件/文件夹(注意目标路径是拷贝成功后的路径)

      BOOL ret7 =   [fileManager copyItemAtPath:[PATH

                                     stringByAppendingPathComponent:@"file.txt"]

                             toPath:[PATH stringByAppendingPathComponent:@"a/file.txt"] error:nil];

        

        if (ret7) {

            NSLog(@"拷贝成功");

        }else{

            NSLog(@"拷贝失败");

        }

        //方法十:文件/文件夹的移动

        //参数一:源文件的路径

        //参数二:目标路径(移动成功后的那个文件的路径)

      BOOL ret8 =   [fileManager moveItemAtPath:

                [PATH stringByAppendingPathComponent:@"a"]

             toPath:[PATH stringByAppendingPathComponent:@"d/a"]

                           error:nil];

        if (ret8) {

            NSLog(@"移动成功");

        }else{

            NSLog(@"移动失败");

        }

        

        

        //作业

        

    }

    return 0;

}



转载于:https://my.oschina.net/luhoney/blog/647521

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值