一个简单的代码计算行数demo编写

2023-03-16,,

最近手头的项目基本上已经完结,历经了5个月的开发和迭代,各种的需求调整,想对自己的代码量进行一个客观的计算,于是抽了点时间写下了这个小demo,朋友们有需要的可以看看,很简单。

基本的思想就是:根目录->递归的遍历所有文件夹>计算具体某一文件的代码行数

具体流程如下:

#pragma mark---------------------->递归文件夹下文件

- (void)recordFilePathWithPath:(NSString *)path{

/*        文件管理器         */

NSFileManager *manager = [NSFileManager defaultManager];

/*        该目录下文件存在的情况下  是否为文件夹bool值         */

BOOL ret = NO;

/*        文件是否存在bool值         */

BOOL fileExist = [manager fileExistsAtPath:path isDirectory:&ret];

/*        文件存在时         */

if (fileExist) {

/*        该目录为文件夹时         */

if (ret) {

/*        该目录下的所有文件         */

NSArray *arr = [manager contentsOfDirectoryAtPath:path error:nil];

for (NSString *secondPath in arr) {

/*        拼接地址         */

NSString *newPath = [path stringByAppendingPathComponent:secondPath];

/*        递归文件夹下文件         */

[self recordFilePathWithPath:newPath];

}

}else{

/*        该目录为文件时 筛选出合适的文件  博主暂订这几种文件 当然还有.mm文件 如果您的项目中存在 可以添加上去         */

if ([path hasSuffix:@".h"]||[path hasSuffix:@".m"]||[path hasSuffix:@".swift"]||[path hasSuffix:@".pch"]) {

/*        将该目录添加到文件目录数组中         */

[_pathArr addObject:path];

}

}

}

}

以下是简单的流程操作

- (void)viewDidLoad {

[super viewDidLoad];

_pathArr = [NSMutableArray array];

/*        要计算项目的根目录 请根据您的需求添加url         */

NSString *basePath = @"/Users/JH/Desktop/项目/公司项目/CRM资料/CRMCJ_JIANHAO/CRMCJ/Resource";

/*        递归函数 递归并存储所有的.h .m .swift等代码文件        */

[self recordFilePathWithPath:basePath];

/*        总代码行数         */

long allCount = 0;

/*        遍历之前统计出来的文件目录  逐个计算行数         */

for (NSString *path in _pathArr) {

/*        将文件内容取出         */

NSString * str = [NSString stringWithContentsOfFile:path encoding:kCFStringEncodingUTF8 error:nil];

/*        根据换行符切割字符串 并存入数组         */

NSArray * arr = [str componentsSeparatedByString:@"\n"];

/*        数组个数         */

NSInteger count = [arr count];

/*        遍历切割的字符串数组         */

for (NSString * lineStr in arr) {

/*        当为注释文件时或者空白行时不添加         */

if ([lineStr hasPrefix:@"//"]||([lineStr rangeOfString:@"/*"].length>0&&[lineStr rangeOfString:@"*/"].length>0)||[[lineStr componentsSeparatedByString:@" "] count]==lineStr.length+1) {

count -- ;

}

}

allCount += count;

}

/*        展示行数         */

_showLabel.text = [NSString stringWithFormat:@"当前文件代码行数为:%ld 行",allCount];

}

demo的github地址为:https://github.com/China131/JHCodeLinesCountDemo.git 需要代码的朋友可以看看,demo比较简单,在这就不索取start了

一个简单的代码计算行数demo编写的相关教程结束。

《一个简单的代码计算行数demo编写.doc》

下载本文的Word格式文档,以方便收藏与打印。