Objective-C 计算文件夹里的代码行数

原创 2015年07月09日 17:52:49
//
//  main.m
//  计算代码行数
//
//  Created by waka on 15/7/9.
//  Copyright (c) 2015年 OC. All rights reserved.
//

#import <Foundation/Foundation.h>

NSInteger codeLineCount(NSString *path)// 计算文件夹代码函数
{
    // 获得 文件管理者
    NSFileManager *mgr = [NSFileManager defaultManager];
    // 判断 path 是文件 还是 文件夹
    BOOL dir = NO;// yes 是文件夹 no 不是文件夹
    // 判断 文件(夹) 是否存在
    BOOL exist = [mgr fileExistsAtPath:path isDirectory:&dir];
    if(!exist)
    {
        NSLog(@"输入有误!");
        return 0;// 输入的文件不存在  结束
    }
    
    if (dir)
    {// 是文件夹
        NSArray *array = [mgr contentsOfDirectoryAtPath:path error:nil]; // 把当前文件/夹 里的东西放到一个数组里
        int count = 0;// 计代码数
        for (NSString *fileName in array)// 遍历数组里的所有文件/夹
        {
            // 获得 子文件/夹 的 全路径
            NSString *fullPath = [NSString stringWithFormat:@"%@/%@",path,fileName];
            count += codeLineCount(fullPath); // 递归调用~
        }
        return count;
    }
    else
    {// 不是文件夹
        //判断 文件扩展名 (把 字符 都转化成 小写  好判断~)
        NSString *extension = [[path pathExtension] lowercaseString];
        if (![extension isEqualToString:@"h"]&&![extension isEqualToString:@"m"])// 计算.h 和 .m 的
        {
            //NSLog(@"文件有误!");
            return 0;
        }
        // 加载文件内容
        NSString *content = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
        //NSLog(@"%@",content);
        // 计算 有多少个换行
        NSArray *array = [content componentsSeparatedByString:@"\n"];// 函数意思是 把文件 按 什么(@“...”) 分割
       
        // 遍历 每一行 输出
        //    int i=0;
        //    for (NSString *line in array)
        //    {
        //        NSLog(@"%d--%@",i,line);
        //        i++;
        //    }
        
        // 觉得 输出的文件路径太长
        NSRange range = [path rangeOfString:@"/Users/waka/Documents/Objective-c/"];// 获得指定搜索的文件夹
        NSString *str = [path stringByReplacingCharactersInRange:range withString:@""]; // 把路径输出为 空
        
        NSLog(@"%@ - %ld",str,array.count); // 打印 文件路径及 单个文件代码行数
        return array.count;

    }

    
}
<pre name="code" class="objc">int main( )
{
    NSInteger count = codeLineCount(@"/Users/waka/Documents/Objective-c/");// 输入 要查的文件夹路径
    NSLog(@"%ld",count);
    
    return 0;
}




一行shell命令实现代码行数统计

shell find 代码统计方法大全
  • fanwenjieok
  • fanwenjieok
  • 2016年11月24日 15:36
  • 3328

一个计算代码行数的程序

import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import jav...
  • u013910357
  • u013910357
  • 2015年03月22日 21:26
  • 397

计算一个项目工程中所有包下面的代码行数

有时我们在做项目归档的时候难免会遇到,进行统计代码的行数,这时我们可以用一段代码,直接统计出来。 下面我给出一段统计一个java工程下代码的行数的实例代码:import java.io.File; ...
  • u012516914
  • u012516914
  • 2014年10月24日 09:30
  • 1223

统计文件夹下java代码行数

编写这个程序主要就是判断是否是文件夹,和是否是java文件。编程时注意成员变量和局部变量的使用,我一开始使用局部变量来递归,不过取到的值都是0,因为在递归中重新赋值了。名字取的时候没注意。。。 Co...
  • funi16
  • funi16
  • 2012年08月27日 20:09
  • 2772

如何计算C++有效代码行数?

源代码行数统计器 1.5http://www.newhua.com/soft/30001.htm"本软件用于统计软件工程源代码行数,可对指定的子目录下或整个目录树中所有指定类型的源代码文件进行行数统计...
  • CPPCorps
  • CPPCorps
  • 2007年06月08日 08:54
  • 2876

Visual Studio VS如何统计代码行数

编辑-查找和替换-在文件中查找,然后查找内容填写下面的东西,勾选使用正则表达式,点击查找全部 b*[^:b#/]+.*$  在查找结果的最后一行显示了总的行数和文件数...
  • acetaohai123123
  • acetaohai123123
  • 2017年10月17日 21:54
  • 391

Visual Studio VS2015 统计总代码行数

按CTRL+SHIFT+F,然后勾上支持正则表达式,接着输入b*[^:b#/]+.$
  • alipayymf
  • alipayymf
  • 2016年03月18日 11:46
  • 7582

Java代码 统计项目的文件数量,和代码行数

Java代码: package com.dreadmer.code; import java.io.BufferedReader; import java.io.File; import java...
  • u010402518
  • u010402518
  • 2013年09月05日 17:57
  • 2438

Windows 下统计行数的命令

大家都知道在Linux下统计文本行数可以用wc -l 命令,例如: -bash-3.2$ cat pif_install.log | wc -l       712 但在Windows下如何统计输出...
  • hongweigg
  • hongweigg
  • 2014年11月20日 10:33
  • 13842

统计Xcode整个工程的代码行数

统计Xcode整个工程的代码行数 1、打开终端 2、cd 空格 将工程的文件夹拖到终端上,回车,此时进入到工程的路径 此时已经进入到工程文件夹...
  • GOD_CHONG
  • GOD_CHONG
  • 2017年07月18日 16:06
  • 252
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Objective-C 计算文件夹里的代码行数
举报原因:
原因补充:

(最多只允许输入30个字)