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