计算代码行数
2015-04-25 00:27
232 查看
//计算代码行数 #import <Foundation/Foundation.h> //计算单个文件的代码行数 /* 用到的内容: 文件管理类 1,NSFileManger:单例 1)路径是否存在,是否是文件夹:- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory 2)返回数组,元素为指定路径下的文件或者文件夹名称:- (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error 2,NSString 1)将通过分隔符分隔字符串返回NSArray:- (NSArray *)componentsSeparatedByString:(NSString *)separator 2)获取文件中的内容:+ (instancetype)stringWithContentsOfURL:(NSURL *)url encoding:(NSStringEncoding)enc error:(NSError **)error */ /* path:文件的全路径,可能是文件夹,也可能是文件 返回值int: 返回代码的行数 */ int codeLineCount(NSString *path) { int count = 0 ; //1,获得文件管理者,为单例 NSFileManager *mgr = [NSFileManager defaultManager]; //2,判断path是文件夹还是文件路径 BOOL dir = NO;//标记是否问文件夹 //返回值有两个:1)isExist这个路径是否存在,2)如果存在是否是文件夹,是则修改dir的值为YES BOOL isExist = [mgr fileExistsAtPath:path isDirectory:&dir]; //3,如果路径不存在,直接返回0 if(!isExist) { NSLog(@"路径不存在"); return 0; } //4,文件路径存在 //如果是文件夹 if(dir) { NSLog(@"是一个文件夹"); //装着当前文件夹下面的所有内容(文件夹和文件) //返回数组为文件名和文件夹名 NSArray *array = [mgr contentsOfDirectoryAtPath:path error:nil]; //NSLog(@"%@",array); //遍历该文件夹下得所有文件夹和文件 for(NSString *fileName in array) { //拼接获得当前文件夹下文件或文件夹的全路径 NSString *fullPath = [NSString stringWithFormat:@"%@%@",path,fileName]; count += codeLineCount(fullPath); } return count; } else { //判断文件的扩展名(忽略大小写,都转为小写) NSString *extension = [[path pathExtension]lowercaseString]; //如果文件扩展名不是.c或者.m或者.h,则退出 if(![extension isEqualToString:@"h"] && ![extension isEqualToString:@"m"] && ![extension isEqualToString:@"c"]) return 0; NSLog(@"是一个文件"); //加载文件内容,每一行通过'\n'分隔 NSURL *url = [NSURL fileURLWithPath:path]; NSString *contents = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; //通过分隔符'\n',将文件切割为一个数组,数组中存放的是每一行的内容 NSArray *array = [contents componentsSeparatedByString:@"\n"]; //遍历每一行数据 for(NSString *str in array) NSLog(@"%@\n",str); return array.count; } } int main(int argc, const char * argv[]) { @autoreleasepool { int count = codeLineCount(@"/Users/mac/Desktop/11/"); NSLog(@"%d",count); } return 0; }
相关文章推荐
- MacOS 开发 - 计算代码行数
- 如何计算代码新增行数
- Object-c------计算代码行数小demo
- 第十七篇:计算代码行数练习代码
- linux系统-代码行数计算
- find命令计算代码行数
- vs计算代码行数
- Golang 计算目录中代码的行数
- oc 计算代码行数
- 【Python基础】计算项目代码行数
- [原创]Python小工具 —— 计算 文件 或 文件夹及其所有子文件夹中所有文件 的 代码行数
- 计算编写代码行数
- 黑马程序员——OCFoundation框架-9:计算某个文件夹下的代码行数
- 计算目录下所有程序文件代码行数
- 黑马程序员 用OC实现的一个计算文件夹下代码行数的小程序
- 浏览文件神器!且可以计算所有文件代码的行数!
- Objective-C 计算文件夹里的代码行数
- 精确计算TFS中新增以及更改的代码行数
- 一个简单的代码计算行数demo编写