OC-NSFileManager和NSFileHandle的使用
2015-06-24 13:10
393 查看
对于objective-c中的有关文件目录的操作和文件的操作。
通过一道习题来熟悉NSFileManager和NSFileHandle中的方法的使用。
本题原意:将指定目录下所有后缀名为XXX(可以自己输入)的文件中字符串为@"him"(可以自己输入)改为@"me"(可以自己输入)
1.首先新建了一个文件解析类ReplaceStringInDirectory.h
2.在对应的ReplaceStringInDirectory.m文件中实现.h文件中的两个方法
需要注意是: NSFileManager *fm = [NSFileManager defaultManager];生成的对象是一个单例对象。
//创建文件句柄 文件指针 用以操作文件的内容
NSFileHandle *fh = [NSFileHandle fileHandleForUpdatingAtPath:pathFile];
该对象是以可读可写的方式创建的,创建文件句柄(指针),有三种方式 1.只读 2.只写 3.可读可写
通过一道习题来熟悉NSFileManager和NSFileHandle中的方法的使用。
本题原意:将指定目录下所有后缀名为XXX(可以自己输入)的文件中字符串为@"him"(可以自己输入)改为@"me"(可以自己输入)
1.首先新建了一个文件解析类ReplaceStringInDirectory.h
@interface ReplaceStringInDirectory : NSObject /** * 替换指定文件中指定的所有字符串为另一个字符串 */ + (void)replaceInDirectory:(NSString *)pathFile withOldString:(NSString *)oldString withNewString:(NSString *)newString; //替换指定目录下所有指定类型的文件中的字符串 + (void)replaceInDirectory:(NSString *)pathDirectory withOldString:(NSString *)oldString withNewString:(NSString *)newString InType:(NSString *)typeFile; @end
2.在对应的ReplaceStringInDirectory.m文件中实现.h文件中的两个方法
/** * 替换指定文件中指定的所有字符串为另一个字符串 */ + (void)replaceInDirectory:(NSString *)pathFile withOldString:(NSString *)oldString withNewString:(NSString *)newString { //文件目录管理器 一个单例对象 NSFileManager *fm = [NSFileManager defaultManager]; //先备份一份文件在相同的路劲下,并以指定文件格式 [fm copyItemAtPath:pathFile toPath:[pathFile stringByAppendingString:@"_bak"] error:nil]; //创建文件句柄 文件指针 用以操作文件的内容 NSFileHandle *fh = [NSFileHandle fileHandleForUpdatingAtPath:pathFile]; //读取文件的信息 NSData *data = [fh readDataToEndOfFile]; //这样会使的当前文件指针fh指向末尾 NSString *dataString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; //判断当前字符串对象中是否包含有oldWord if ([dataString containsString:oldString]) { dataString = [dataString stringByReplacingOccurrencesOfString:oldString withString:newString]; } //将文件清空,之后将字符串写回到文件中 [fh truncateFileAtOffset:0]; [fh writeData:[dataString dataUsingEncoding:NSUTF8StringEncoding]]; //同步文件。 关闭线程锁 [fh synchronizeFile]; [fh closeFile]; } //替换指定目录下所有指定类型的文件中的字符串 + (void)replaceInDirectory:(NSString *)pathDirectory withOldString:(NSString *)oldString withNewString:(NSString *)newString InType:(NSString *)typeFile { NSFileManager *fm = [NSFileManager defaultManager]; //深层次的遍历目录 NSArray *arrayFile = [fm subpathsOfDirectoryAtPath:pathDirectory error:nil]; for (NSString *item in arrayFile) { //获取文件的后缀名 if ([typeFile isEqualToString:[item pathExtension]]) { [self replaceInDirectory:[pathDirectory stringByAppendingFormat:@"/%@",item] withOldString:oldString withNewString:newString]; } } }
需要注意是: NSFileManager *fm = [NSFileManager defaultManager];生成的对象是一个单例对象。
//创建文件句柄 文件指针 用以操作文件的内容
NSFileHandle *fh = [NSFileHandle fileHandleForUpdatingAtPath:pathFile];
该对象是以可读可写的方式创建的,创建文件句柄(指针),有三种方式 1.只读 2.只写 3.可读可写
相关文章推荐
- 开源lincense对比
- android自动更新程序,安装完以后就什么都没有了,没有出现安装成功的界面的问题
- Android 中查看内存的使用情况集常用adb命令
- 常用的正则表达式
- Uva Abbott’s Revenge 816
- xinetd之基础知识和实例
- Java内部类的访问调用
- <笔记>mysql的启动
- [linux]shell 快捷键
- How-to: enable HDFS HA at a new cluster
- 从运维角度浅谈MySQL数据库优化
- 如何在 Bash 中删除“除某些文件外的所有文件”?
- C#实现图片缩放(包括缩略图和旋转)
- uva 11396Claw Decomposotion(二分图判定)
- Unicode编码下字符串转换
- 扩充你的GRE词汇
- 【新手】Git 常见问题整理
- XCUIElementType API
- SAT历年真题之:作文题目汇总(八)
- hdu 5274 Dylans loves tree 树剖