统计代码行数的(不包括空行)

统计代码的行数?很神奇?哈哈其实是非常简单的!

具体代码如下,代码中已经标注注释,如果需要测试自己的代码量只需要将文中的"需要测试代码的地址"改为自己的地址即可:

 8 
 9 #import <Foundation/Foundation.h>
10 
11 NSUInteger ZMsumdm(NSString *path)
12 {
13     
14     NSFileManager *ZMmanger = [NSFileManager defaultManager];
15     
16     BOOL ZMyes = NO;
17     //判断文件路径是否存在,如果存在yn返回yes,如果不存在yn返回no,
18     //&yes值是判断路径所指的是文件还是文件夹,如果是文件夹值为yes,如果是文件返回值为no
19     BOOL ZMyn = [ZMmanger fileExistsAtPath:path isDirectory:&ZMyes];
20     
21     //如果这个路径不存在结束程序
22     if (!ZMyn) return 0;
23     
24     //如果这个路径存在,并且判断是一个文件夹
25     if (ZMyes) {
26         //这是一个文件夹
27         //返回文件夹里的所有内容,返回值为数组
28         NSArray *array = [ZMmanger contentsOfDirectoryAtPath:path error:nil];
29 //        NSLog(@"%@",array);
30         
31         int ZMcount = 0;
32         for (NSString *fileName in array) {
33             
34             //拿到全路径
35             NSString *fullPath = [NSString stringWithFormat:@"%@/%@",path,fileName];
36 //            NSLog(@"%@",fullPath);
37             
38             ZMcount += ZMsumdm(fullPath);
39             
40         }
41         NSLog(@"count:%zd",ZMcount);
42         return ZMcount;
43         
44     }
45     else{
46         int zs =0;
47         
48         //这是一个文件
49         
50         //判断文件的扩展名为.h/.m/.c的文件才计算行数
51         
52         //拿到路径所指文件扩展名,并转换成小写(lowercaseString这个方法可以将字母转换成小写)
53         NSString *ZMkzm = [[path pathExtension]lowercaseString];
54     
55         if (![ZMkzm isEqualToString:@"m"]&&![ZMkzm isEqualToString:@"h"]&&![ZMkzm isEqualToString:@"c"]) return 0;
56         
57 
58         //加载文件内容(把文件里的内容全部转换成了字符串)
59         NSString *dress = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
60         //将字符串以"
"为分隔符,分隔成数组
61         NSArray *array = [dress componentsSeparatedByString:@"
"];
62      
63         //把path中@"/Users/sunzeming/Desktop/"这段字符串替换为空
64         NSRange range =[path rangeOfString:@"/Users/sunzeming/Desktop/"];
65         NSString *thPath =[path stringByReplacingCharactersInRange:range withString:@""];
66         NSLog(@"文件路径:%@,代码的行数为:%zd",thPath,array.count);
67         //去除代码中为空行的代码数
68          int ZMsjdms=0;
69         for (NSString *arr in array) {
70                NSLog(@"%@",arr);
71             if ([arr isEqualToString:@""]) {
72                
73                 ZMsjdms +=1;
74                 zs = ZMsjdms;
75                 
76             }
77         }
78         return array.count-zs;
79 
80     }
81 
82 }
83 
84 
85 int main(){
86     
87     NSUInteger count = ZMsumdm(@"需要测试代码的地址");
88     
89     NSLog(@"您所查找的文件的代码行数一共为:%zd",count);
90     
91     return 0;
92     
93 }
全身心修练iOS
原文地址:https://www.cnblogs.com/ZMiOS/p/4797707.html