Objective-C 计算文件夹里的代码行数
2015-07-09 17:52
363 查看
// // main.m // 计算代码行数 // // Created by waka on 15/7/9. // Copyright (c) 2015年 OC. All rights reserved. // #import <Foundation/Foundation.h> NSInteger codeLineCount(NSString *path)// 计算文件夹代码函数 { // 获得 文件管理者 NSFileManager *mgr = [NSFileManager defaultManager]; // 判断 path 是文件 还是 文件夹 BOOL dir = NO;// yes 是文件夹 no 不是文件夹 // 判断 文件(夹) 是否存在 BOOL exist = [mgr fileExistsAtPath:path isDirectory:&dir]; if(!exist) { NSLog(@"输入有误!"); return 0;// 输入的文件不存在 结束 } if (dir) {// 是文件夹 NSArray *array = [mgr 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"])// 计算.h 和 .m 的 { //NSLog(@"文件有误!"); return 0; } // 加载文件内容 NSString *content = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; //NSLog(@"%@",content); // 计算 有多少个换行 NSArray *array = [content componentsSeparatedByString:@"\n"];// 函数意思是 把文件 按 什么(@“...”) 分割 // 遍历 每一行 输出 // int i=0; // for (NSString *line in array) // { // NSLog(@"%d--%@",i,line); // i++; // } // 觉得 输出的文件路径太长 NSRange range = [path rangeOfString:@"/Users/waka/Documents/Objective-c/"];// 获得指定搜索的文件夹 NSString *str = [path stringByReplacingCharactersInRange:range withString:@""]; // 把路径输出为 空 NSLog(@"%@ - %ld",str,array.count); // 打印 文件路径及 单个文件代码行数 return array.count; } }
<pre name="code" class="objc">int main( ) { NSInteger count = codeLineCount(@"/Users/waka/Documents/Objective-c/");// 输入 要查的文件夹路径 NSLog(@"%ld",count); return 0; }
相关文章推荐
- Objective-C的内省(Introspection)用法小结
- Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect实例分析
- Objective-C中NSLog输出格式大全
- Swift调用Objective-C编写的API实例
- Swift、Objective-C、Cocoa混合编程设置指南
- Objective-c代码如何移植为Swift代码 Objective-c代码转移到Swift过程介绍
- Swift调用Objective-C代码
- objective-c中生成随机数的方法
- 在Swift中使用Objective-C编写类、继承Objective-C类
- Swift能代替Objective-C吗?
- Objective-C 消息传递机制详解
- 在一个项目中同时使用Swift和Objective-C代码混合编程的方法
- vm安装mac os x 10.7 lion
- objective-c(一)
- objective-c(二)
- objective-c(三)
- objective-c(四)-基本数据类型以及循环和选择结构
- objective-c(六)文件分离,合成存取方法,方法多参数,局部变量,self使用(未完成)
- windows下objective-c的cocoa框架编程,可以有图形界面哟