利用Foundation架構寫的小程式統計檔案(檔案夾內檔案)的所有行數(或統計字數)

來源:互聯網
上載者:User
////  main.m//  計算程式碼數////  Created by apple on 13-8-12.//  Copyright (c) 2013年 apple. All rights reserved.//#import <Foundation/Foundation.h>//  NSFileManger ,NSString ,NSArray 類的使用// 計算單個檔案的程式碼數 (可能是檔案 可能是檔案夾)// path :檔案的全路徑  傳回值: intint codeLineCount(NSString *path){    // NSFileManger  是單粒對象    NSFileManager *mgr = [NSFileManager defaultManager];    // 判斷path 是檔案還是檔案夾    BOOL dir = NO;// 標記是否為檔案夾    // 判斷 這個路徑是否存在    BOOL exist = [mgr fileExistsAtPath:path isDirectory:&dir];    // 如果不存在 ,直接返回 0    if(!exist)    {        NSLog(@"該路徑不存在");        return 0;    }    if (dir) {        NSLog(@"是檔案夾");        NSArray *array = [mgr contentsOfDirectoryAtPath:path error:nil];        //NSLog(@"%@",array);        int sum = 0;        for(NSString *filename in array)        {            // 子檔案夾 的全路徑            NSString *fullname = [NSString stringWithFormat:@"%@/%@",path,filename];            sum += codeLineCount(fullname);        }        return sum;    }    else    {        NSLog(@"是檔案");        // 判斷檔案拓展名        NSString *extentsion = [[path pathExtension] lowercaseString];        NSLog(@"%@",extentsion);        if(![extentsion isEqualToString:@"h"]&& ![extentsion isEqualToString:@"m"]&& ![extentsion isEqualToString:@"c"]&& ![extentsion isEqualToString:@"docx"])        {            return 0;        }        // 讀取檔案(負載檔案內容)        NSString *contents = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];      //  NSLog(@"%@",contents);        // 用 \n 分割檔案        NSArray * array = [contents componentsSeparatedByString:@"\n"];//        for(id obj in array)//        {//            NSLog(@"%@",obj);//        }        NSRange range = [path rangeOfString:@"Users/apple/Desktop/"];        NSString *str = [path stringByReplacingCharactersInRange:range withString:@""];        NSLog(@"%@  %zd",str, array.count);       // return (int)contents.length;    return (int)array.count;    }       // 檔案的分割數 就是 檔案的行數}int main(int argc, const char * argv[]){  //  NSString *str = @"jak\njdfs";   // [str writeToFile:@"/Users/apple/Desktop/data.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];    int count = codeLineCount(@"/e:/a.rtf");    NSLog(@"行數為~~%d",count);    return 0;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.