文件操作

 一:文件管理器

NSFileManager *f1 = [NSFileManager defaultManager];  //defaultManager 方法可以创建一个单例对象,即都是同一个对象

NSLog(@"%p",f1);  //打印出指针地址

NSFileManager *f2 = [NSFileManager defaultManager];

NSLog(@"%p",f2);  //打印出指针地址   ,f1和f2的指针地址是一样的


NSFileManager *f3 = [NSFileManager alloc]init];  //alloc 创建的就是一个全新的对象

创建一个User类,在User.m中


 //静态变量,整个程序运行完成的时候才会被释放掉,也就是main函数运行完成

 static User *instance = nil;

 +(User *)defaultUser

{

    //return  [[self alloc]init];   这种创建出来的对象指针地址是不一样的

   if(instance  == nil)        //这种创建出来的对象指针地址是一样的,只创建出一个相同的对象

   {

     instance = [[self alloc]init];    

   }

   return  instance;

}


 main中调用

 //在整个程序没有退出之前,只需要创建一次,我们就可以把它写成单例模式

//简单的单例模式

User *u1 = [User defaultUser];   //用defaultUser创建的对象都是同一个

u1.age=20;

NSLog(@"u1  %p",u1);

User *u2 = [User defaultUser];

NSLog(@" u2 %p  age = %d",u2,u2.age);    //打印出的   u1和u2的指针地址一致, age = 10

 User *u3 =[ [User alloc]init];  //alloc创建的就是一个全新的对象


 已经接触的设计模式有

1:组合模式(聚合模式)

2:单例模式

3:策略模式(封装变化点),block

4:  向上抽象(protocol(协议))

5:享元设计模式(NSString池原理)


二:获取文件属性


创建一个文件(已经写过了)

NSString *str = @"www.china.com";

NSError *error;

BOOL isWriteSuccess = [str writeToFile:@"/User/apple/Desktop/test.txt"  atomically:YES encoding:NSUTF8StringEncoding error:&error];

if(isWriteSuccess)

{

   NSLog(@"创建成功");

}

else

{

    NSLog(@"创建失败");

}


1:获取文件管理器

NSFileManager *fileManager= [NSFileManager defaultManager];


2:获得文件的所有属性

NSString *path = @"/User/apple/Desktop/test.txt";

NSError *error;

 NSDictionary *dic = [fileManager attributesOfItemAtPath:path error:&error];

if(error != nil)

{

    NSLog(@"error %@",error);

}

else

{

        NSLog(@"dic  %@",dic);  //获得文件所有属性

        NSDate *CreationDate = [dic objectForKey:NSFileCreationDate];  // 获得文件创建时间(NSFileCreationDate) 

       NSDate *date = [dic objectForKey:NSFileModificationDate];  // 获得文件创建时间(NSFileCreationDate)

        NSString *size = [dic objectForKey:NSFileSize];  //获得文件大小

       NSLog(@"CreationDate = %@ , size = %@",CreationDate,size);

}


三 :获得目录下的文件与子文件目录列表

NSFileManager *fileManager= [NSFileManager defaultManager];

NSString *path = @"/User/apple/Desktop/zhong";

NSError *error;


//只能够获得目标目录下的第一级目录

NSArray *array = [fileManager contentsOfDirectoryAtPath:path error:&error];


//能够逐级的获得所有子集的目录

NSArray *array = [fileManager subpathsOfDirectoryAtPath:path error:&error];


四:管理目录

 1:创建目录

NSFileManager *fileManager= [NSFileManager defaultManager];

NSString *path = @"/User/apple/Desktop/my";  //在桌面创建一个名为  my  的文件夹,或者  my/a,即在my中再创建a

NSError *error;


//withIntermediateDirectories  YES:会逐级创建文件夹    NO:正能创建一级目录

BOOL isCreatSuccess = [ fileManager createDirectoryAtPath:path withIntermediateDirectories:YES 

                                        attributes:nil error:&error];

if(isCreateSuccess)

{

    NSLog(@"创建成功");

}

else

{

  NSLog(@"error  %@",error);

}


2:移动目录,相当于剪切操作,原文件不见了

NSFileManager *fileManager= [NSFileManager defaultManager];

NSString *path = @"/User/apple/Desktop/zhong";

NSString *path2 = @"/User/apple/Desktop/newzhong";

NSError *error;

BOOL isMoveSuccess = [ fileManager moveItemAtPath:path toPath:path2  error:&error];

if(isMoveSuccess)

{

    NSLog(@"移动成功");

}

else

{

  NSLog(@"error  %@",error);

}


3:删除目录

NSFileManager *fileManager= [NSFileManager defaultManager];

NSString *path = @"/User/apple/Desktop/zhong";

NSError *error;

BOOL isRemoveSuccess = [ fileManager removeItemAtPath  error:&error];

if(sRemoveSuccess)

{

    NSLog(@"删除成功");

}

else

{

  NSLog(@"error  %@",error);

}


4:拷贝文件,复制

NSFileManager *fileManager= [NSFileManager defaultManager];

NSString *path = @"/User/apple/Desktop/zhong";

NSString *path2 = @"/User/apple/Desktop/newzhong";

NSError *error;

BOOL isCopySuccess = [ fileManager copyItemAtPath:path toPath:path2  error:&error];

if(isCopySuccess)

{

    NSLog(@"拷贝成功");

}

else

{

  NSLog(@"error  %@",error);

}


五:管理文件


 1:获得文件(mp3,mp4,rmvb,mkv,pdf,doc,txt,png.......)

NSString *path = @"/User/apple/Desktop/yun.png";

NSData *data  = [NSData dataWithContentsOfFile:path];

NSLog(@"%ld",data.length);



2:创建文件

NSFileManager *fileManager= [NSFileManager defaultManager];

NSString *pathTo = @"/User/apple/Desktop/zhongyun.png";

BOOL isCreateSuccess = [ fileManager createFileAtPath:pathTo contents:data attributes:nil];

if(isCreateSuccess)

{

    NSLog(@"创建成功");

}

else

{

  NSLog(@"创建失败");

}



3:移动文件,相当于剪切

NSFileManager *fileManager= [NSFileManager defaultManager];

NSString *path = @"/User/apple/Desktop/yun.png";

NSString *path2 = @"/User/apple/Desktop/my/zhong.png";

NSError *error;

BOOL isMoveSuccess = [ fileManager moveItemAtPath:path toPath:path2  error:&error];

if(isMoveSuccess)

{

    NSLog(@"移动成功");

}

else

{

  NSLog(@"error  %@",error);

}


4:删除文件

NSFileManager *fileManager= [NSFileManager defaultManager];

NSString *path = @"/User/apple/Desktop/yun.png";

BOOL isRemoveSuccess = [ fileManager removeItemAtPath:path  error:&error];

if(isRemoveSuccess)

{

    NSLog(@"删除成功");

}

else

{

  NSLog(@"error  %@",error);

}




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值