黑马程序员————IOS学习笔记 第11篇 经典示例计算代码行数
2015-02-27 17:08
471 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
这是mj老师讲过的计算代码行数的实例,要用到NSArry与NSString,从这个程序中可以看到这两个类的经典方法的运用和读取文件内容及遍历文件内容的方法,还有递归的思想。其中标红为要掌握内容。
这是mj老师讲过的计算代码行数的实例,要用到NSArry与NSString,从这个程序中可以看到这两个类的经典方法的运用和读取文件内容及遍历文件内容的方法,还有递归的思想。其中标红为要掌握内容。
NSUInteger codeLineCount(NSString *path) { <span style="color:#ff6666;">// 1.获得文件管理者</span> NSFileManager *mgr = [NSFileManager defaultManager]; <span style="color:#ff0000;">// 2.标记是否为文件夹</span> BOOL dir = NO; // 标记是否为文件夹 // 标记这个路径是否存在 BOOL exist = [mgr fileExistsAtPath:path isDirectory:&dir]; <span style="color:#ff6666;"> // 3.如果不存在,直接返回0</span> if(!exist) { NSLog(@"文件路径不存在!!!!!!"); return 0; } // 代码能来到着,说明路径存在 if (dir) { // 文件夹 <span style="color:#ff0000;">// 获得当前文件夹path下面的所有内容(文件夹、文件)</span> NSArray *array = [mgr contentsOfDirectoryAtPath:path error:nil]; <span style="color:#ff0000;"> // 定义一个变量保存path中所有文件的总行数</span> int count = 0; <span style="color:#ff0000;"> // 遍历数组中的所有子文件(夹)名</span> for (NSString *filename in array) { <span style="color:#ff6666;">// 获得子文件(夹)的全路径</span> NSString *fullPath = [NSString stringWithFormat:@"%@/%@", path, filename]; // 累加每个子路径的总行数 count += codeLineCount(fullPath); } return count; } else { // 文件 <span style="color:#ff0000;">// 判断文件的拓展名(忽略大小写)</span> NSString *extension = [[path pathExtension] lowercaseString]; if (![extension isEqualToString:@"h"] && ![extension isEqualToString:@"m"] && ![extension isEqualToString:@"c"]) { // 文件拓展名不是h,而且也不是m,而且也不是c return 0; } <span style="color:#ff0000;">// 加载文件内容</span> NSString *content = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; <span style="color:#ff0000;"> // 将文件内容切割为每一行</span> NSArray *array = [content componentsSeparatedByString:@"\n"]; // 删掉文件路径前面的/Users/apple/Desktop/iOS课堂共享/0722课堂共享/ NSRange range = [path rangeOfString:@"/Users/apple/Desktop/iOS课堂共享/0722课堂共享/"]; NSString *str = [path stringByReplacingCharactersInRange:range withString:@""]; // 打印文件路径和行数 NSLog(@"%@ - %ld", str, array.count); return array.count; } } int main() { NSUInteger count = codeLineCount(@"/Users/apple/Desktop/iOS课堂共享/0722课堂共享"); NSLog(@"%ld", count); return 0; }
相关文章推荐
- ios 学习笔记6 配置 xcode 显示代码行数
- IOS学习--Foundation--计算文件中得代码行数(小练习)
- 黑马程序员--ios基础--oc-foundation--NSString,NSArray与计算代码行数的练习
- [iOS学习笔记] 如何在Xcode 4中修改代码的Copyright信息
- 微软企业库4.1学习笔记(二十三)加解密模块3 示例代码
- 黑马程序员之jquery学习笔记:jquery特效之金额文本框代码
- 学习笔记(一)之示例程序:计算每年的最高温度MaxTemperature
- iOS学习笔记10(7)—GCD示例源码
- AJAX 学习笔记[二] 我编写的AJAX 测试代码示例
- 黑马程序员之 C#学习笔记:结构体是复制传递的经典案例
- Hadoop学习笔记(一)之示例程序:计算每年的最高温度MaxTemperature
- 黑马程序员之ASP.NET学习笔记:Http状态代码及其含义
- HADOOP的学习笔记 (第五期) hadoop示例代码分析 .
- ((ios开发学习笔记 十))代码实现自定义TableView
- iOS学习笔记11—代码里打印程序所占用的内存
- 黑马程序员之C#编程基础学习笔记:用while计算1到100之间整数的和;
- json 入门学习笔记 示例代码
- QTP学习笔记之2.2 --Object Repository相关示例代码
- 黑马程序员之c#程序学习笔记:c#程序经典例子学习总结
- 【黑马程序员】GetMD5()加密代码(学习笔记)