zoukankan      html  css  js  c++  java
  • 黑马程序员-根据本地地址计算文本中有多少行的代码

    • 首先给出的地址有两种可能性,一种是文件夹的地址,另一种就是文件的地址,先来个简单的,假设给出的地址就是文件的地址
      1 // 以文件路径为参数统计文件行数的函数
      2 NSInteger codeLineCount(NSString *path){
      3     // 将目标文件内容转换成OC字符串
      4     NSString *contents = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
      5     // 将字符创分割成OC数组
      6     NSArray *array = [contents componentsSeparatedByString:@"
      "];
      7     // 返回数组的元素个数
      8     return array.count;
      9 }

      如果函数的参数是文件夹路径那么我们将会用到NSFilemanager这个类

       1 // 以文件路径为参数统计文件行数的函数
       2 NSInteger codeLineCount(NSString *path){
       3     // 统计代码行数
       4     NSInteger lineCount = 0;
       5     // 将目标文件内容转换成OC字符串
       6     NSString *contents = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
       7     // 获取文件夹管理者
       8     NSFileManager *filemanager = [NSFileManager defaultManager];
       9     // 标记是否为文件夹
      10     BOOL dir = YES;
      11     // 标记路径是否存在
      12     BOOL exist = [filemanager fileExistsAtPath:path isDirectory:&dir];
      13     if(!exist){
      14         NSLog(@"所传路径不存在");
      15         return 0;
      16     }
      17     if (dir) {// 文件夹
      18         // 获取文件夹里面的所有文件和文件夹
      19         NSArray *array = [filemanager contentsOfDirectoryAtPath:path error:nil];
      20         for (NSString *filename in array) {
      21             // 获取文件夹内各文件或者文件夹的路径
      22             NSString *fullpath = [NSString stringWithFormat:@"%@/%@",path, filename];
      23             // 函数递归调用
      24             lineCount += codeLineCount(fullpath);
      25         }
      26     }
      27     else{// 文件
      28         // 获取文件的扩展名
      29         NSString *extension = [path pathExtension];
      30         // 将扩展名除了m、h、c以外的文件过滤掉
      31         if(![extension isEqualToString:@"m"]
      32            &&![extension isEqualToString:@"c"]
      33            &&![extension isEqualToString:@"h"]){
      34             return 0;
      35         }
      36         // 将字符创分割成OC数组
      37         NSArray *array = [contents componentsSeparatedByString:@"
      "];
      38         
      39         // 返回数组的元素个数
      40         return array.count;
      41     }
      42     return lineCount;
      43 }

      说明:以上代码是看完视屏后自己凭着印象敲的,途中有几个重要方法和函数没想起来

  • 相关阅读:
    SHELL编程之执行环境----邹立巍的博客
    linux内核分析系列--百度
    Linux模式设计系列( 内核与应用关联思考)
    Linux内核源代码情景分析系列
    Linux内核学习和研究及嵌入式(ARM)学习和研究的开放文档
    实验楼内核分析 +图
    《Linux内核修炼之道》 系列
    和菜鸟一起学linux内核源码之基础准备篇 系列 体系结构图
    实验楼在线算法学习
    linux-0.11内核 调试教程+GCC源代码
  • 原文地址:https://www.cnblogs.com/oucding/p/4446341.html
Copyright © 2011-2022 走看看