oc之递归遍历文件的行数

9 篇文章 0 订阅

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;

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值