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 }

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

  • 相关阅读:
    mapreduce 的过程
    bootstrap当中,实现一些常用的元素居中
    如何理解人工智能、机器学习和深度学习三者的关系
    MapReduce的局限性
    MapReduce的计算资源划分
    Java中的堆和栈的区别
    java面试01-网络知识
    01Java经典问题
    06数据库复习03
    05数据库复习02
  • 原文地址:https://www.cnblogs.com/oucding/p/4446341.html
Copyright © 2011-2022 走看看