第十七篇:计算代码行数练习代码
2015-09-16 11:23
483 查看
用到Foundation中的一些类:
NSManager
NSString
NSArray
NSManager
NSString
NSArray
// // main.m // 10-计算代码行数 // // Created by xxx on 15/9/16. // Copyright (c) 2015年 itcast. All rights reserved. // #import <Foundation/Foundation.h> int countLineOfFile(NSString * path){ // 获得文件管理者 NSFileManager * manager = [NSFileManager defaultManager]; // 判断path是不是一个可计算的文件的路径 BOOL isFile = NO; BOOL exist = [manager fileExistsAtPath:path isDirectory:&isFile]; if (!exist) { // path的文件路径不存在 return 0; } // 如果路径存在 if (isFile) { // path 下的路径是文件夹 // 获得当前文件夹下的所有内容:文件夹及文件 NSArray * fileArray = [manager contentsOfDirectoryAtPath:path error:nil]; int count = 0; // 查看所有的文件和文件夹 for ( NSString * file in fileArray) { count += countLineOfFile([NSString stringWithFormat:@"%@/%@",path,file]); } return count ; } else{ // 获得文件的扩展名 NSString * extension = [path pathExtension]; if(!([extension isEqualToString:@"h"] || [extension isEqualToString:@"m"] || [extension isEqualToString:@"c"] || [extension isEqualToString:@"cpp"])) return 0; // 获得文件路径为path的文件中所有内容 NSString * fileConten = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; // 一个字符串用'\n'来划分成多个字符串,即每一行作为一个字符串 NSArray * array = [fileConten componentsSeparatedByString:@"\n"]; // for(NSString * str in array) // NSLog(@"%@",str); return (int)array.count ; } } int main(int argc, const char * argv[]) { // 统计一个文件或文件夹中的代码行数,包括空行 int count = countLineOfFile(@"/Users/qujie/Documents/OC程序/10-计算代码行数"); NSLog(@"count = %d",count); // NSString * str = @"123-456-789"; // NSArray * array = [str componentsSeparatedByString:@"-"]; // NSLog(@"%@",array); return 0; }
相关文章推荐
- Android无法导入下载好的项目(和Eclipse中已经存在的项目命名一样导致冲突)解决办法
- asp.net 站内搜索功能的实现及利用datatable绑定数据并进行分页
- php 下载完成后删除文件
- 关于phpcms v9投票模块选项排序listorder设定问题
- eclipse+Jboss配置远程调试
- Java泛型中的通配符的使用
- python sorted()函数解析
- Eclipse快捷键
- java设计模式系列--工厂模式
- Google Java编程风格指南
- qtp,VBScript操作MySQL数据库时,关于多次访问数据库的问题,数据集如何处理
- python 连接 MySQL 数据库
- 解决phpcms V9 推荐位无法排序
- 如何把MATLAB仿真图的背景色设成白色
- c++中的多字符常量
- qt 数据库表不存在则创建
- c++关于文件夹(文件)的相关操作_findfirst,_findnext和_findclose方法
- java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0错误解析
- 致PHP路上的“年轻人”
- 给ASP.NET MVC及WebApi添加路由优先级