博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Objective-c》Foundation框架 -(练习:计算整个文件夹的代码行数)
阅读量:5901 次
发布时间:2019-06-19

本文共 2151 字,大约阅读时间需要 7 分钟。

 

练习:计算整个文件夹的代码行数

////  main.m//  02-计算整个文件夹的代码行数////  Created by unique on 15-1-26.//  Copyright (c) 2015年 unique. All rights reserved.//#import 
NSUInteger codeLines(NSString *path){ // 1.获得文件管理者 NSFileManager *mgr = [NSFileManager defaultManager]; // 2.判断path是文件夹还是文件路径 BOOL dir = NO; BOOL exist = [mgr fileExistsAtPath:path isDirectory: &dir]; // 3.如果文件路径不存在,直接返回0 if(!exist) { NSLog(@"这个路径不存在!!!!!"); return 0; } // 4.如果路径存在,继续下面的执行 // 1> 如果dir == 1 ,说明路径是一个文件夹 if (dir) { // NSLog(@"这是一个文件夹!"); // 2> 如果是文件夹,就获取文件夹里面的所有东西(包括子文件夹和文件) NSArray *array = [mgr contentsOfDirectoryAtPath:path error:nil]; int count = 0; // 3> 遍历数组中的所有文件及文件名 for (NSString *fileName in array) { NSString *fullPath = [NSString stringWithFormat:@"%@/%@", path, fileName]; count += codeLines(fullPath); } return count; } // 5.如果是个文件 else { // 1> 对文件进行过滤 // * 获取文件的拓展名(没有点)并转换成小写 NSString *extension = [[path pathExtension] lowercaseString]; // * 如果不是.h .m .c文件就返回0 if (![extension isEqualToString:@"h"] && ![extension isEqualToString:@"m"] && ![extension isEqualToString:@"c"]) { return 0; } // *如果是.h .m .c文件就执行下面的代码 // 1> 加载文件内容 NSString *content = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; // 2> 将文件内容分割成每一行 NSArray *array = [content componentsSeparatedByString:@"\n"]; NSRange range = [path rangeOfString:@"/Users/unique/Desktop/ios学习/"]; NSString *str = [path stringByReplacingCharactersInRange:range withString:@""]; NSLog(@"%@--%ld", str, array.count); return array.count; }}int main(int argc, const char * argv[]){ NSUInteger count = codeLines(@"/Users/unique/Desktop/ios学习"); NSLog(@"%ld", count); return 0;}

 

 
 
 

转载于:https://www.cnblogs.com/unique-ios/p/4358399.html

你可能感兴趣的文章
利用PDO导入导出数据库
查看>>
DDR3
查看>>
分支 统计字数
查看>>
艾级计算机的发展与挑战
查看>>
RocketMQ事务消息实战
查看>>
mysql-mmm-2.2.1安装手册
查看>>
搭建yum源服务器
查看>>
delphi使用ado导出excel
查看>>
linux 命令详解 二十三
查看>>
IT职场人生系列之二:大学生活
查看>>
手把手教你做出好看的文本输入框
查看>>
zabbix 3.2.7 (源码包)安装部署
查看>>
vsCode 快捷键、插件
查看>>
vue-validator(vue验证器)
查看>>
jQuery Ajax MVC 下拉框联动
查看>>
html
查看>>
c#创建文件夹
查看>>
Hibernate事务代码规范写法
查看>>
网络最大流问题算法小结 [转]
查看>>
面试之Java知识整理
查看>>