日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OC-NSFileManager和NSFileHandle的使用

發布時間:2023/12/10 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OC-NSFileManager和NSFileHandle的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對于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

總結

以上是生活随笔為你收集整理的OC-NSFileManager和NSFileHandle的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。