標籤:
用到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;}
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
第十七篇:計算程式碼數練習代碼