- //计算单个文件的代码行数
- NSUInteger codeLineNum(NSString *path)
- {
- //获得文件管理者,只有一个对象
- NSFileManager *manager = [NSFileManager defaultManager];
-
- //判断path为文件夹还是为文件
- BOOL dir = NO; // YES为文件夹,NO为非文件夹
- //这个路径是否真实
- BOOL exit = [manager fileExistsAtPath:path isDirectory:&dir];
-
- //如果不存在,就返回
- if(!exit) return 0;
-
-
-
- int count = 0;
-
- if(dir)
- {
- NSLog(@"文件夹");
- //装载文件夹下的所有内容
- NSArray *array = [manager contentsOfDirectoryAtPath:path error:nil];
-
- //遍历数组中的文件名
- for(NSString *name in array)
- {
- //子文件的全路径
- NSString *filePath = [NSString stringWithFormat:@"%@/%@",path,name];
-
- //子路径的总行数
- count +=codeLineNum(filePath);
- }
- return count;
-
- }else
- {
- //判断文件扩展名, 不是返回0, 变成小写进行判断
- NSString *extension = [[path pathExtension] lowercaseString];
- if(!([extension isEqualToString:@"h"]||
- [extension isEqualToString:@"m"]||
- [extension isEqualToString:@"c"]))
- {
- return 0;
- }
-
- //路径必须写死, 替换文件夹前面的字符
- //NSRange *ange = [path rangeOfString:@"/Users/Apple/Desktop/Test/"];
-
- //[path stringByReplacingCharactersInRange:ange withString:@""];
-
- //将文件内容存入NSString中
- NSString *counts=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
-
- //计算\n个数 , 以\n为分割
- NSArray *arr = [counts componentsSeparatedByString:@"\n"];
-
-
- return arr.count;
- }
-
-
- }
复制代码
跟大家分享一下!
|