用到Foundation中的一些类:
NSManager
NSString
NSArray
// // main.m // 10-计算代码行数 // // Created by xxx on 15/9/16. // Copyright (c) 2015年 itcast. All rights reserved. // #import <Foundation/Foundation.h> int countLineOfFile(NSString * path){ // 获得文件管理者 NSFileManager * manager = [NSFileManager defaultManager]; // 判断path是不是一个可计算的文件的路径 BOOL isFile = NO; BOOL exist = [manager fileExistsAtPath:path isDirectory:&isFile]; if (!exist) { // path的文件路径不存在 return 0; } // 如果路径存在 if (isFile) { // path 下的路径是文件夹 // 获得当前文件夹下的所有内容:文件夹及文件 NSArray * fileArray = [manager contentsOfDirectoryAtPath:path error:nil]; int count = 0; // 查看所有的文件和文件夹 for ( NSString * file in fileArray) { count += countLineOfFile([NSString stringWithFormat:@"%@/%@",path,file]); } return count ; } else{ // 获得文件的扩展名 NSString * extension = [path pathExtension]; if(!([extension isEqualToString:@"h"] || [extension isEqualToString:@"m"] || [extension isEqualToString:@"c"] || [extension isEqualToString:@"cpp"])) return 0; // 获得文件路径为path的文件中所有内容 NSString * fileConten = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; // 一个字符串用'\n'来划分成多个字符串,即每一行作为一个字符串 NSArray * array = [fileConten componentsSeparatedByString:@"\n"]; // for(NSString * str in array) // NSLog(@"%@",str); return (int)array.count ; } } int main(int argc, const char * argv[]) { // 统计一个文件或文件夹中的代码行数,包括空行 int count = countLineOfFile(@"/Users/qujie/Documents/OC程序/10-计算代码行数"); NSLog(@"count = %d",count); // NSString * str = @"123-456-789"; // NSArray * array = [str componentsSeparatedByString:@"-"]; // NSLog(@"%@",array); return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-06 17:21:17