[OC Foundation框架 - 20] 统计代码行数
注意:
//
// main.m
// CodeLineCount
//
// Created by hellovoidworld on 14-11-18.
// Copyright (c) 2014年 com.hellovoidworld. All rights reserved.
// #import <Foundation/Foundation.h> // 计算文件夹或文件内所有代码行数
NSInteger codeLineCount(NSString *path)
{
NSError *error; // 单例模式创建 NSFileManager
NSFileManager *fileManager = [NSFileManager defaultManager]; BOOL isDirectory = NO;
BOOL isFileExist = [fileManager fileExistsAtPath:path isDirectory:&isDirectory]; // 文件是否存在
if (!isFileExist)
{
NSLog(@"%@-->文件或文件夹不存在!", path);
return ;
} // 如果是文件夹,进行递归调用
if (isDirectory)
{
// NSLog(@"文件夹: %@", path); NSInteger lineCount = ; // 代码行数 // 获取文件夹下的所有内容,包括子文件夹和文件
NSArray *subPaths = [fileManager contentsOfDirectoryAtPath:path error:&error]; if (error != nil)
{
NSLog(@"Fail to read the directory, the error is %@", error);
} for (NSString *subPath in subPaths)
{
NSString *fullSubPath; // 全路径的文件名
fullSubPath = [NSString stringWithFormat:@"%@/%@", path, subPath]; // 取出来的文件名不带路径
lineCount += codeLineCount(fullSubPath);
} return lineCount;
}
else
{
NSInteger lineCount = ; // 代码行数 // 取得文件扩展名
NSString *fileExtension = [[path pathExtension] lowercaseString]; // 过滤非代码文件
if (![fileExtension isEqualToString:@"h"]
&& ![fileExtension isEqualToString:@"m"]
&& ![fileExtension isEqualToString:@"c"])
{
return ;
} NSString *fileContent = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error]; if (error != nil)
{
NSLog(@"Read fail, error is %@", error);
} NSArray *codeLinesArray = [fileContent componentsSeparatedByString:@"\n"];
lineCount = [codeLinesArray count]; NSLog(@"%@的代码行数是%ld", path, lineCount);
return lineCount;
}
} int main(int argc, const char * argv[]) {
@autoreleasepool { NSInteger lineCount = codeLineCount(@"/Users/hellovoidworld/Study");
NSInteger lineCount2 = codeLineCount(@"/Users/hellovoidworld/Desktop/oc"); NSLog(@"所有源码文件的总行数是%ld", lineCount + lineCount2); } return ;
}
[OC Foundation框架 - 20] 统计代码行数的更多相关文章
- Eclipse统计代码行数
开发过程中,经常需要统计代码行数,这时可以通过Eclipse的Search功能来实现. 步骤: 1.在Package Explorer中选中需要统计的包: 2.单击菜单Search-->File ...
- 在Flash Builder或者Eclipse统计代码行数的方法
在Flash Builder或者Eclipse统计代码行数的方法如下图菜单栏--搜索--搜索文件
- 【Linux】常用命令-统计代码行数
公司人员流动大,经常有新的维护任务,交接时喜欢看看新来的模块的代码量,那么问题来了, 如何统计代码行数? 1,最先想到的肯定是 wc. wc -l *.h 将查看[当前目录]下头文件的代码行数,输出结 ...
- c#统计代码行数
小编,已经快学了两年编程了.昨天突发奇想,想统计下这些年到底写过多少行代码,于是做了一个这个小程序来统计代码行数.老规矩,先上图. 比较惭愧,写了两年只有2万多行.那我们还是进入下一项吧. 界面搭建我 ...
- 【未解决】对于使用Windows的IDEA进行编译的文件,但无法在Linux系统中统计代码行数的疑问
在我学习使用Windows的IDEA的过程中,将代码文件转移到Linux虚拟机当中,但无法在Linux系统中统计代码行数. 注意:拷贝进虚拟机的文件均能编译运行. 具体过程如下: root@yogil ...
- Visual Studio 统计代码行数
介绍一种简单的统计代码行数的小技巧, 使用正则表达式,用VS强大的查找功能 b[^:b#/]+.$ 最后结果:
- 用django统计代码行数+注释行数
实现统计代码行数: 1.首先在url.py中配置 from django.conf.urls import url from django.contrib import admin from app0 ...
- cloc 统计代码行数工具
cloc 统计代码行数工具 官网地址:http://cloc.sourceforge.net/ 下载完成后 会生成一个.exe文件 需要修改文件名为 cloc.exe 然后把这个文件拷贝到需要统计的根 ...
- python统计代码行数
以前写了一个java的统计代码行数的小程序,最近在看python,于是就参考前辈的代码,写了一个统计文件夹下面各种程序的代码的小程序,这里贴出来供大家参考 参考链接: https://gist.git ...
随机推荐
- ue标签不见了,如何解决?
小问题,但是很恶心...如下图: 解决方法: 右键点击[菜单栏]右边的空白处,选择advanced,默认是basic,这时菜单栏中的菜单条目会变多,然后选择[视图]---[视图/列表]---[打开文件 ...
- HandlerThread 类的学习(转载)
HandlerThread继承于Thread,所以它本质就是个Thread.HandlerThread类用于方便的创建一个含有looper的线程类,looper用来创建handler类.我们一般不创建 ...
- H264码流解析及NALU
ffmpeg 从mp4上提取H264的nalu http://blog.csdn.net/gavinr/article/details/7183499 639 /* bitstream fil ...
- Java经典书籍
Java Web开发教程---孙霞JSP应用开发详解(第三版)---刘晓华.张健.周慧贞Spring in Action---Craig Walls精通Struts基于MVC的Java Web设计与开 ...
- cctype头文件(字符处理库)的使用
C++ 中cctype头文件的使用 头文件cctype(字符处理库)中定义了有关字符判断与处理的库函数,使用前要包含头文件: #include <cctype> using namespa ...
- 网上图书商城项目学习笔记-014购物车模块页面javascrip
一.流程分析 二.代码 1.view层 (1)list.jsp <%@ page language="java" import="java.util.*" ...
- 完全掌握Android Data Binding
转载:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0603/2992.html 来源 https://github.com/L ...
- 图模型的统计推断 inference in graphical models(马尔科夫链的推断)
有关因子图(factor graphs)以及其在sum product 算法,max-algorithm中的应用,将在一下篇博客中分享. 谢谢您的关注,欢迎提出意见问题.
- PHP 如何阻止用户上传成人照片或者裸照
在这份教程中,我们将会学习到如何阻止用户通过PHP上传成人照片或者裸照. 示例 下载 我在phpclasses.org上面偶然发现一个很有用的,由Bakr Alsharif开发的可以帮助开发者基于 ...
- 同步or异步
一.什么是同步?什么是异步? 同步:如果有多个任务要执行,这些任务必须逐个执行,一个任务的执行会导致整个流程的暂时等待,这些任务没有办法并发地执行: 异步:如果有多个任务要执行,这些任务可以并发执行, ...