黑马程序员技术交流社区
标题:
返回一个文件夹中代码行数的函数
[打印本页]
作者:
银河雨
时间:
2014-11-4 15:17
标题:
返回一个文件夹中代码行数的函数
计算一个文件夹下面所有文件的行数的函数:
//path:文件的全路径(可能是文件夹、也可能是文件)
//返回值 int:代码行数
int codeLineCount (NSString *path)
{
//获取文件的管理者,是一个单例
NSFileManager *fmgr = [NSFileManager defaultManager];
//判断是文件还是文件夹。NO表示是文件,YES表示是文件夹
BOOL dir = NO;
//判断路径是否存在
BOOL exist = [fmgr fileExistAtPath:path isDirectory:&dir];
// 如果路径不存在,直接返回
if(!exist)
{
NSLog(@"文件路径不存在!!!!");
return 0;
}
//如果是文件夹
if(dir)
{
NSLog(@"是个文件夹");
//将当前文件夹里面的所有内容放入一个数组,只有名称,没有路径(包括文件和文件夹)
NSArray *array = [fmgr contentsOfDirectoryAtPath:path error:nil];
int count = 0;
//遍历数组中的所有内容
for (NSString *fileName in array)
{
//将所有内容变成全路径
NSString *fullPath = [NSString stringWithFormat:@"%@/%@",path,fileName];
//递归调用,计算文件中的行数
count += codeLineCount(fullPath);
}
return count;
}
else
//如果是文件
{
//获取文件的扩展名,并转换为小写(这样可以忽略大小写的差别)
NSString *extension = [[path pathExtension] lowercaseString];
if(![extension isEqualToString:@"h"] && ![extension isEqualToString:@"m"] && ![extension isEqualToStrting:@"c"])
{
return 0;
}
//将文件中的内容全部加载出来
NSString *content = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
//将文件内容用回车键隔开,放入数组
NSArray *array = [content componentsSeparatedByString:@"\n"];
//返回数组的数量,就是当前文件的行数
return array.count;
}
}
复制代码
作者:
邵永阳
时间:
2015-2-28 15:07
还行,但是感觉没必要写那么多注释。
作者:
世俗孤岛
时间:
2015-2-28 21:06
很用心,很认真
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2