IOS学习--Foundation--计算文件中得代码行数(小练习)
来源:互联网 发布:cpu 编程 英语 编辑:程序博客网 时间:2024/06/07 05:22
//// main.m// 03--计算文件中得代码行数//// Created by LeeWong on 14-10-25.// Copyright (c) 2014年 LeeWong. All rights reserved.//#import <Foundation/Foundation.h>/*//计算单个文件的行数NSUInteger codeLineCount(NSString *path){ //读出文件的内容 NSString *str =[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; //输出字符串内容进行验证 是否正确读出文件内容 NSLog(@"%@",str); //将读出的文件内容一'\n'分开 NSArray *array = [str componentsSeparatedByString:@"\n"]; for( NSString *obj in array) { NSLog(@"%@",obj); } return array.count;}*///计算某个文件夹下所有文件的行数NSInteger codeLineCount(NSString *path){ //新建一个文件管理这 NSFileManager *mgr = [NSFileManager defaultManager]; BOOL dir = NO; //判断传入的路径是否合理 BOOL exist = [mgr fileExistsAtPath:path isDirectory:&dir]; if(!exist) { //文件不存在 退出程序 NSLog(@"文件不存在"); return 0; } //路径合理 判断路径是一个文件还是文件夹 if(dir == YES) { int count = 0;//该文件夹中得文件数为0 //这是一个文件夹 //读取这个文件夹中得文件 存放于数组之中 NSArray *array = [mgr contentsOfDirectoryAtPath:path error:nil]; //输出这个数组中得内容 for(NSString *filename in array) { //输出其路径 //NSLog(@"%@%@",path,filename); //拼接成全路径 NSString *fullpath = [NSString stringWithFormat:@"%@/%@",path,filename]; //递归调用本函数codelinecount计算行数 count += codeLineCount(fullpath); } return count; } else { //只计算后缀为.h .m .c的文件 //取出该文件的后缀 NSString *extension = [[path pathExtension] lowercaseString]; if(![extension isEqualToString:@"m"] && [extension isEqualToString:@"h"] && [extension isEqualToString:@"c"]) { return 0; } //NSLog(@"%@",extension); //这是一个文件 //读出文件的内容 NSString *str =[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; //输出字符串内容进行验证 是否正确读出文件内容 // NSLog(@"%@",str); //将读出的文件内容一'\n'分开 NSArray *array = [str componentsSeparatedByString:@"\n"]; /* for( NSString *obj in array) { NSLog(@"%@",obj); } */ //打印出每个文件的 文件名 跟行数 //NSLog(@"%@ %ld",path,array.count); //上面的方法打印文件路径过于冗余 修改简单 //先计算 荣誉路径的范围 NSRange range = [path rangeOfString:@"/Users/LeeWong/Desktop/project"]; NSString *newpath = [path stringByReplacingCharactersInRange:range withString:@" "]; NSLog(@"%@--%ld",newpath,array.count); return array.count; }}int main() { //调用函数 NSUInteger linecount = codeLineCount(@"/Users/LeeWong/Desktop/project"); NSLog(@"%ld",linecount); return 0;}void test(){ NSUInteger line = codeLineCount(@"/Users/LeeWong/Desktop/1.txt"); NSLog(@"the line of this program is %ld",line);} //// main.m// 03--计算文件中得代码行数//// Created by LeeWong on 14-10-25.// Copyright (c) 2014年 LeeWong. All rights reserved.//#import /*//计算单个文件的行数NSUInteger codeLineCount(NSString *path){ //读出文件的内容 NSString *str =[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; //输出字符串内容进行验证 是否正确读出文件内容 NSLog(@"%@",str); //将读出的文件内容一'\n'分开 NSArray *array = [str componentsSeparatedByString:@"\n"]; for( NSString *obj in array) { NSLog(@"%@",obj); } return array.count;}*///计算某个文件夹下所有文件的行数NSInteger codeLineCount(NSString *path){ //新建一个文件管理这 NSFileManager *mgr = [NSFileManager defaultManager]; BOOL dir = NO; //判断传入的路径是否合理 BOOL exist = [mgr fileExistsAtPath:path isDirectory:&dir]; if(!exist) { //文件不存在 退出程序 NSLog(@"文件不存在"); return 0; } //路径合理 判断路径是一个文件还是文件夹 if(dir == YES) { int count = 0;//该文件夹中得文件数为0 //这是一个文件夹 //读取这个文件夹中得文件 存放于数组之中 NSArray *array = [mgr contentsOfDirectoryAtPath:path error:nil]; //输出这个数组中得内容 for(NSString *filename in array) { //输出其路径 //NSLog(@"%@%@",path,filename); //拼接成全路径 NSString *fullpath = [NSString stringWithFormat:@"%@/%@",path,filename]; //递归调用本函数codelinecount计算行数 count += codeLineCount(fullpath); } return count; } else { //只计算后缀为.h .m .c的文件 //取出该文件的后缀 NSString *extension = [[path pathExtension] lowercaseString]; if(![extension isEqualToString:@"m"] && [extension isEqualToString:@"h"] && [extension isEqualToString:@"c"]) { return 0; } //NSLog(@"%@",extension); //这是一个文件 //读出文件的内容 NSString *str =[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; //输出字符串内容进行验证 是否正确读出文件内容 // NSLog(@"%@",str); //将读出的文件内容一'\n'分开 NSArray *array = [str componentsSeparatedByString:@"\n"]; /* for( NSString *obj in array) { NSLog(@"%@",obj); } */ //打印出每个文件的 文件名 跟行数 //NSLog(@"%@ %ld",path,array.count); //上面的方法打印文件路径过于冗余 修改简单 //先计算 荣誉路径的范围 NSRange range = [path rangeOfString:@"/Users/LeeWong/Desktop/project"]; NSString *newpath = [path stringByReplacingCharactersInRange:range withString:@" "]; NSLog(@"%@--%ld",newpath,array.count); return array.count; }}int main() { //调用函数 NSUInteger linecount = codeLineCount(@"/Users/LeeWong/Desktop/project"); NSLog(@"%ld",linecount); return 0;}void test(){ NSUInteger line = codeLineCount(@"/Users/LeeWong/Desktop/1.txt"); NSLog(@"the line of this program is %ld",line);}
0 0
- IOS学习--Foundation--计算文件中得代码行数(小练习)
- 黑马程序员---Foundation常用类练习(计算文件代码行数)
- iOS代码行数计算
- 黑马程序员--ios基础--oc-foundation--NSString,NSArray与计算代码行数的练习
- 第十七篇:计算代码行数练习代码
- ios开发计算代码行数
- Object-c------计算代码行数小demo
- 计算iOS Xcode总代码行数
- iOS——计算项目代码行数
- python写的统计PYTHON文件的(代码行数,空行数,注释行数)小程序
- Golang 计算目录中代码的行数
- 李明杰老师关于计算整个文件夹的代码行数练习
- IOS学习--Foundation常用结构体(代码)
- 利用Foundation框架写的小程序统计文件(文件夹内文件)的所有行数(或统计字数)
- 黑马程序员——Foundation---结构体,字符串,NSArray,计算代码行数
- IOS统计项目中代码行数
- iOS工程中代码行数统计
- Python:统计特定文件夹中,特定文件代码行数的小程序
- coach outlet usa-513100
- IOS学习--Foundation--NSArray的使用
- 依次输出链表中的各个结点的递归算法
- Convert Sorted List to Binary Search Tree ---请叫我变形金刚(please call me a transformer)
- error LNK2005: _DllMain@12 already defined in xxx.OBJ
- IOS学习--Foundation--计算文件中得代码行数(小练习)
- easyui 月历
- poj3636
- mfc中如何取消组合框的排序
- 黑马培训IOS学习--Foundation---NSSet的使用
- asio学习笔记3
- hibernate注解之实体属性OneToOne 单双向关联(三)
- 黑马培训之IOS学习--Foundation--dictionary字典的使用
- UICollectionView 与 storyboard 的一点体会