oc之递归遍历文件的行数
2016-03-25 19:01
267 查看
1.参数是文件(夹)路径:path
2.跟路径有关的类是NSfileManager,这个类的对象是单例对象,
3.首先要创建这个对象 。(NSfileManager *mgr =[ NSfileManager defaultManager])
然后运用对象的方法对路径进行判断。
4。运用到递归的算法。
2.跟路径有关的类是NSfileManager,这个类的对象是单例对象,
3.首先要创建这个对象 。(NSfileManager *mgr =[ NSfileManager defaultManager])
然后运用对象的方法对路径进行判断。
4。运用到递归的算法。
int codeLineConut(NSString *path){ NSFileManager *mgr = [NSFileManager defaultManager];//创建文件管理器 //判断路径是否为文件夹 bool dir = NO;//默认为不存在 bool exit = [mgr fileExistAtPath:path isDiretory:&dir];//如果path为文件夹将在dir指向位置写入NO,否则写入YES.如果path不存在将返回NO,否则返回YES。 if(!exit){ NSLog(@"路径不存在"); return 0; } NSString *extension = [path pathExtension lowercaseString];//返回文件扩展名 lowrcaseString 转换为对应的小写。 if(([extension isEqualToString:@"h"] &&![extension isEqualToString:@"c"] &&![extension isEqualToString:@"m"])){ return 0; } if(dir){ NSArrary *str = [mgr contentOfDirectoryAtPath:path error:nil]; //将路径下的文件(夹)放入数组中。 int count = 0; for(NSString *filename in str) { NSString *fullpath = [NSString stringwithformat:@"%@/%@",path,filename]; count +=codeLineCount(fullpath); } return count; } else{ NSString *content = [NSString stringWithContentOfFie:path ending:NSUTF8StringEncoding error:nil];//将文件内容转换为字符串。 NSArrary *str1 = [content componmentSeparatedByString:@"\n"];//通过\n来隔离内容将内容分配成块,查看一共有多少块。就是多行。文件换行符,就是\n.只不过没显示出来。 rerturn str1.count; } } int main(){ int count codeLineCount(@"/users/yanhang/Desktop/"); NSLog(@"count = %d",count); return 0; }
相关文章推荐
- android拨打电话
- UVA 11889
- URL、URN 、URI的区别和联系
- C++学习之:括号匹配与栈的使用
- xml文件解析(解析以后在RootTableViewController输出)
- Linux***检查
- 项目中遇到的问题
- Gradle 依赖管理
- poj-2739-Sum of Consecutive Prime Numbers
- Git的安装与配置
- xib创的view修改frame
- Android之SharedPreferences读写数据
- Myeclipse:No projects are available for deployment to this server!
- 设计模式系列(六)——桥接模式
- 大整数比较大小
- linux中vsftpd配置文件详解
- 排列<一>
- Random/Stochastic
- 排序---对二维数组的排序
- 链式队列的实现