A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

传入的路径是没问题的,但输出结果是文件夹不存在
  1. #import <Foundation/Foundation.h>
  2. NSInteger codeLineCount(NSString *path)
  3. {
  4.     // 获得文件管理者
  5.     NSFileManager *mgr=[NSFileManager defaultManager];
  6.     // 判断path是文件夹还是路径
  7.     BOOL dir=NO; // 判断文件是否存在
  8.     // 判断文件路径是否存在
  9.     BOOL exist=[mgr fileExistsAtPath:path isDirectory:&dir];
  10.     // 如果不存在,直接返回0
  11.     if(!exist)
  12.     {
  13.         NSLog(@"文件路径不存在");
  14.         return 0;
  15.     }
  16.    
  17.     if(dir)
  18.     {
  19.         int count=0;
  20.         // 获得当前路径下的所有文件(夹)
  21.         NSArray *array=[mgr contentsOfDirectoryAtPath:path error:nil];
  22.         // 遍历所有文件名
  23.         for(NSString *filename in array)
  24.         {
  25.             // 子文件的全路径
  26.             NSString *fullPath=[NSString stringWithFormat:@"%@%@",path,filename];
  27.             // 累加每个路径的总行数
  28.             count+= codeLineCount(fullPath);
  29.         }
  30.         return count;
  31.     }
  32.    
  33.     else
  34.     {
  35.         NSString *extension=[[path pathExtension] lowercaseString];
  36.         if(!([extension isEqualToString:@"c"]||
  37.              [extension isEqualToString:@"h"]||
  38.              [extension isEqualToString:@"m"]))
  39.         {
  40.             return 0;
  41.         }
  42.         // 加载文件内容
  43.         NSString *content=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
  44.         // 将文件切割成每一行
  45.         NSArray *array=[content componentsSeparatedByString:@"\n"];
  46.         NSRange range=[path rangeOfString:@"/Users/Mark_Lee/Desktop/IOS"];
  47.         NSString *str=[path stringByReplacingCharactersInRange:range withString:@""];
  48.         NSLog(@"%@-%ld",str,array.count);
  49.         return array.count;
  50.     }
  51.    
  52. }
  53. int main() {
  54.    NSInteger count =codeLineCount(@"/Users/Mark_Lee/Desktop/IOS");
  55.    
  56.    NSLog(@"%ld",count);
  57.    
  58.    return 0;
  59. }
复制代码





2 个回复

正序浏览
能具体解释一下马:):handshake
回复 使用道具 举报
文件操作还没看到
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马