Objective-C实现计算你写了多少行代码
#import <Foundation/Foundation.h>
NSInteger codeLineCount(NSString *path)
{
//1.获取文件管理者,这是一个单例
NSFileManager *manage = [NSFileManager defaultManager];
//2.判断文件夹or文件
BOOL dir = NO;
BOOL exist = [manage fileExistsAtPath:path isDirectory:&dir];
if (!exist) return 0;
if (dir) {
NSArray *arr = [manage contentsOfDirectoryAtPath:path error:nil];
NSInteger count = 0;
for (NSString *str in arr) {
NSString *fullPath = [NSString stringWithFormat:@"%@/%@", path, str];
count += codeLineCount(fullPath);
}
return count;
}else{
NSString *content = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
NSArray *arr = [content componentsSeparatedByString:@"\n"];
return arr.count;
}
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
#warning 这里改成你想要计算的文件夹活着文件
NSInteger count = codeLineCount(@"/Users/hj/work/hjhj");
NSLog(@"%ld",count);
}
return 0;
}
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
最新文章
- CRUD操作
- 懒加载的用处和赋nil操作[iOS开发教程]
- Day3 summary
- PHP 调用Python脚本
- Discuz X3核心文件解析
- grep -w
- uvalive 4513 Stammering Aliens
- C#上传图片同时生成缩略图,控制图片上传大小。
- css中关于transform、transition、animate的区别
- 第三节 ISBN 码 / ISSN 码
- dede 提交表单 发送邮件
- Tomcat日志与Log4j日志
- sonarqube6.7部署文档
- 50代码HTML5 Canvas 3D 编辑器优雅搞定
- ";INSTALL_FAILED_DUPLICATE_PERMISSION ";错误解决
- UESTC - 1999 也许这是唯一能阻止乐爷AK的方法( Just for Fun )(回文树)
- 在H5页面内通过地址调起高德地图实现导航
- HTML 转 PDF 之 wkhtmltopdf 工具精讲
- Javascript 需要注意的细节
- python beautifulsoup爬虫
热门文章
- GIT 实验
- 检测.net framework 版本
- http://www.cnblogs.com/Joyes1989/archive/2013/06/28/3161739.html centos 输入法安装切换
- FSG压缩壳和ImportREC的使用 - 脱壳篇05
- mysql 针对单张表的备份与还原
- Structs2中Action返回json到前台方法
- 【POJ 1330 Nearest Common Ancestors】LCA问题 Tarjan算法
- MongoDB C Driver and APIinstances linux MongoDB安装配置
- 如何彻底解决jsp页面中文乱码及数据库乱码
- QT笔记(1)--QT编程环境搭建