您的位置:首页 > 移动开发 > Objective-C

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

2016-05-26 19:10 465 查看
NSFileManager : 判断文件/文件夹是否存在, 创建文件/文件夹, (拷贝,移动,删除)文件/文件夹......

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

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

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

1.NSFileManager

a.defaultManager(单例)

b目录遍历

1)浅层遍历

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

2)深层遍历

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

c判断文件是否存在 fileExistsAtPath

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

e其他,拷贝 移动 删除

copyItemAtPath:toPath

moveItemAtPath:toPath

removeItemAtPath

应用举例

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

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: