博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
文件操作
阅读量:2352 次
发布时间:2019-05-10

本文共 4620 字,大约阅读时间需要 15 分钟。

 一:文件管理器

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

}

转载地址:http://gxrvb.baihongyu.com/

你可能感兴趣的文章
SNMP协议
查看>>
RDP远程桌面协议
查看>>
ssh Forward X11
查看>>
搜索引擎知识图谱相关结构化数据挖掘与去歧处理
查看>>
找到n个元素中的第二小元素
查看>>
linux命令之find
查看>>
linux命令学习之cut
查看>>
linux下目录读权限与执行权限区别
查看>>
[think in java]知识点学习
查看>>
linux下线程调试 ulimit core
查看>>
linux 知识点拾遗
查看>>
java equal和==的区别
查看>>
c++中static的用法总结
查看>>
const的常见用法
查看>>
crontab使用手册
查看>>
虚继承与虚基类的本质
查看>>
函数式编程
查看>>
GitHub上整理的一些工具
查看>>
python range 与xrange的区别
查看>>
算法-最长递增子序列
查看>>