Objective-C ---NSFileManager NSFileHandle (梳理整理)

NSFileManager :  判断文件/文件夹是否存在,   创建文件/文件夹,  (拷贝,移动,删除)文件/文件夹......

NSFileHandle:   文件内容读取, 写入.....

诀窍:NSFileManager 对文件的外在 进行操作,对于文件的内容不感兴趣  

           NSFileHandle:刚好相反,只对文件的内容感兴趣

 

1.NSFileManager

a.defaultManager(单例)

b目录遍历

 1)浅层遍历

    contentsOfDirectoryAtPath消息 作用:获取指定目录中的所有内容

  2)深层遍历

    subpathsOfDirectoryAtPath消息  作用:遍历出指定目录中所有文件,包括子目录

c判断文件是否存在  fileExistsAtPath    

d创建文件/文件夹  createFileAtPath/createDirectoryAtPath

e其他,拷贝 移动  删除

copyItemAtPath:toPath

moveItemAtPath:toPath

removeItemAtPath

f.查看文件属性:2016.6.3添加
  NSDictionary *dic = [[NSFileManager defaultManager] attributesOfItemAtPath:path error:nil];

 

应用举例

a文件是否存在,不存在创建

if(     ![[NSFileManager defaultManager]     fileExistsAtPath:XXXPath"]   ){

[[NSFileManager defaultManager] createFileAtPath:<#(NSString *写文件路径)#> contents:<#(NSData * 写nil  )#> attributes:<#(NSDictionary *读写权限   写nil)#>];

 

2.NSFilehandle

1.创建方式(以什么样的权限打开文件只读/只写/读写)

  1)只读方式打开文件  fileHandleForReadingAtPath

  2)只写方式打开文件    fileHandleForWritingAtPath

  3)读写方式打开文件  fileHandleForUpdatingAtPath (一般也没必要给自己设卡,用这个)

 NSFileHandle *fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:XXXPath]

2.将数据写入文件

writeData<*****>

3.读取

readDataToEndOfFile 作用:从文件中读取所有数据   光标移至最后

readDataOfLength  作用:从文件中读取指定指定字节的数据

用这个读取比较麻烦的地方就是光标的问题,假如非要用就特别注意读取前吧光标的位置移至需要的位置

seekToFileOffset     作用:将文件读写指针设置到文件的指定位置

seekToEndOfFile     作用:将文件读写位置设置到文件末尾

4.关闭文件  closeFile

应用举例 

a创建文件  并写入内容

+(void)createFile:(NSString*)path WithData:(NSData*)imgData{

    //    createFile

    [[NSFileManager defaultManager] createFileAtPath:path contents:nil attributes:nil];

    //    write

    NSFileHandle*dataHandle = [NSFileHandle fileHandleForUpdatingAtPath:path]  ;

    [dataHandle writeData:imgData];

    //    close

    [dataHandle closeFile];

}

 

 

 

 

 

转载于:https://my.oschina.net/adso/blog/681094

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值