您的位置:首页 > 其它

oc之递归遍历文件的行数

2016-03-25 19:01 267 查看
1.参数是文件(夹)路径:path

2.跟路径有关的类是NSfileManager,这个类的对象是单例对象,

3.首先要创建这个对象 。(NSfileManager *mgr =[ NSfileManager defaultManager])

然后运用对象的方法对路径进行判断。

4。运用到递归的算法。

int codeLineConut(NSString *path){
NSFileManager *mgr = [NSFileManager defaultManager];//创建文件管理器
//判断路径是否为文件夹
bool dir = NO;//默认为不存在
bool exit = [mgr fileExistAtPath:path isDiretory:&dir];//如果path为文件夹将在dir指向位置写入NO,否则写入YES.如果path不存在将返回NO,否则返回YES。
if(!exit){
NSLog(@"路径不存在");
return 0;
}
NSString *extension = [path pathExtension lowercaseString];//返回文件扩展名 lowrcaseString 转换为对应的小写。
if(([extension isEqualToString:@"h"]
&&![extension isEqualToString:@"c"]
&&![extension isEqualToString:@"m"])){
return 0;
}
if(dir){
NSArrary *str = [mgr contentOfDirectoryAtPath:path error:nil];
//将路径下的文件(夹)放入数组中。
int count = 0;
for(NSString *filename in str)
{ NSString *fullpath = [NSString      stringwithformat:@"%@/%@",path,filename];
count +=codeLineCount(fullpath);
}
return count;
}
else{
NSString *content = [NSString stringWithContentOfFie:path ending:NSUTF8StringEncoding error:nil];//将文件内容转换为字符串。
NSArrary *str1 = [content componmentSeparatedByString:@"\n"];//通过\n来隔离内容将内容分配成块,查看一共有多少块。就是多行。文件换行符,就是\n.只不过没显示出来。
rerturn str1.count;
}
}
int main(){
int count codeLineCount(@"/users/yanhang/Desktop/");
NSLog(@"count = %d",count);
return 0;

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