二级网站建设检查评比方案,j2ee网站开发买什么书,没备案网站如何通过百度联盟审核,网站查询功能怎么做对于objective-c中的有关文件目录的操作和文件的操作。 通过一道习题来熟悉NSFileManager和NSFileHandle中的方法的使用。 本题原意:将指定目录下所有后缀名为XXX(可以自己输入)的文件中字符串为him(可以自己输入)改为me(可以自己输入) 1.首先新建了一…对于objective-c中的有关文件目录的操作和文件的操作。 通过一道习题来熟悉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];//判断当前字符串对象中是否包含有oldWordif ([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.可读可写 转载于:https://www.cnblogs.com/BeyondAverage0908/p/4597424.html