A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© UT丶 中级黑马   /  2014-5-12 20:16  /  1410 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  1. //计算单个文件的代码行数

  2. NSUInteger codeLineNum(NSString *path)
  3. {
  4.     //获得文件管理者,只有一个对象
  5.     NSFileManager *manager = [NSFileManager defaultManager];
  6.    
  7.     //判断path为文件夹还是为文件
  8.     BOOL dir = NO; // YES为文件夹,NO为非文件夹
  9.     //这个路径是否真实
  10.     BOOL exit = [manager fileExistsAtPath:path isDirectory:&dir];
  11.    
  12.     //如果不存在,就返回
  13.     if(!exit) return 0;
  14.    
  15.    
  16.    
  17.     int count = 0;
  18.    
  19.     if(dir)
  20.     {
  21.         NSLog(@"文件夹");
  22.         //装载文件夹下的所有内容
  23.         NSArray *array = [manager contentsOfDirectoryAtPath:path error:nil];
  24.         
  25.         //遍历数组中的文件名
  26.         for(NSString *name in array)
  27.         {
  28.             //子文件的全路径
  29.             NSString *filePath = [NSString stringWithFormat:@"%@/%@",path,name];
  30.             
  31.             //子路径的总行数
  32.             count +=codeLineNum(filePath);
  33.         }
  34.         return count;
  35.         
  36.     }else
  37.     {
  38.         //判断文件扩展名, 不是返回0, 变成小写进行判断
  39.         NSString *extension = [[path pathExtension] lowercaseString];
  40.         if(!([extension isEqualToString:@"h"]||
  41.              [extension isEqualToString:@"m"]||
  42.              [extension isEqualToString:@"c"]))
  43.         {
  44.             return 0;
  45.         }
  46.         
  47.         //路径必须写死, 替换文件夹前面的字符
  48.         //NSRange *ange = [path rangeOfString:@"/Users/Apple/Desktop/Test/"];
  49.         
  50.         //[path stringByReplacingCharactersInRange:ange withString:@""];
  51.         
  52.         //将文件内容存入NSString中
  53.         NSString *counts=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
  54.         
  55.         //计算\n个数 , 以\n为分割
  56.         NSArray *arr = [counts componentsSeparatedByString:@"\n"];
  57.         
  58.         
  59.         return arr.count;
  60.     }
  61.    
  62.    
  63. }
复制代码


跟大家分享一下!

评分

参与人数 1技术分 +1 收起 理由
脸皮猴 + 1

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马