計算整個文件夾的代碼行數

// 傳入文件路徑 返回文件下所有文件內容行數
unsigned long codeLineCount(NSString *Path)
{
    // 獲得文件管理者
    NSFileManager *mgr = [NSFileManager defaultManager];

    // 判斷path是文件夾還是文件路徑
    BOOL dir = NO; //標記是否爲文件夾

    // 這個路徑是否存在
    BOOL exists = [mgr fileExistsAtPath:Path isDirectory:&dir];

    // 如果不存在,直接返回0
    if (!exists) return 0;

    if (dir) {
        NSLog(@"是個文件夾");

        // 裝着當前文件夾下面的所有內容(文件夾、文件)
        NSArray *array = [mgr contentsOfDirectoryAtPath:Path error:nil];

        int count = 0;

        // 遍歷數組中所有的文件(文件夾)名
        for (NSString *fileName in array) {

            // 子文件(夾)路徑
            NSString *fullPath = [NSString stringWithFormat:@"%@/%@",Path,fileName];
            count += codeLineCount(fullPath);

        }
        return count;
    }else
    {
        // 加載文件內容
        NSString *content =  [NSString stringWithContentsOfFile:Path encoding:NSUTF8StringEncoding error:nil];

        // 將文件內容切割爲每一行
        NSArray *array = [content componentsSeparatedByString:@"\n"];

        return array.count;
    }

}



int main(int argc, const char * argv[]) {
    @autoreleasepool {

        NSString *filePath = @"/Users/chengyi/Desktop/未命名文件夾/cc.m";

        unsigned long count = codeLineCount(filePath);

        NSLog(@"%ld",count);

    }
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章