NSUInteger codeLine(NSString *path) { //判断path传入的是文件夹还是文件名,并判断文件名的后缀是不是需要统计的 NSFileManager *mgr=[NSFileManager defaultManager]; BOOL dir=NO; BOOL exist=[mgr fileExistsAtPath:path isDirectory:&dir;]; //path不存在,直接返回 if(!exist) return 0; if(dir) { int count=0; //获取目录下的文件 NSArray *arr=[mgr contentsOfDirectoryAtPath:path error:nil]; for (NSString *strName in arr) { //获取文件的全路径 NSString *fullPath=[NSString stringWithFormat:@"%@/%@",path,strName]; // NSLog(@"%@",fullPath); count+=codeLine(fullPath); } return count; } else { NSString *ext=[[path pathExtension] lowercaseString]; if(!([ext isEqualToString:@"h"]||[ext isEqualToString:@"m"])) return 0; //NSLog(@"%@",path); //通过文件路径读取内容 NSString *str=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; //字符串分割成数组 NSArray *array=[str componentsSeparatedByString:@"\n"]; //获得数组的长度即代码行数 return array.count; } }