您的位置:首页 > 其它

OC 学习笔记3 文件夹下所有.txt文件的行数

2015-11-01 12:10 357 查看
#import <Foundation/Foundation.h>

NSUInteger InDictionary(NSString*);

NSUInteger InFile(NSString*);

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

@autoreleasepool {

NSString* path;//文件路径

NSLog(@"%lu",InDictionary(path));

}

return 0;

}

NSUInteger InDictionary(NSString* path){

//NSFileManager是单例模式 [[NSFileManager alloc] init]不起作用,整个类中只有一个对象

NSFileManager* fileManager = [NSFileManager
defaultManager];

BOOL isDir = YES;

BOOL exist = [fileManager
fileExistsAtPath:path isDirectory:&isDir];

//先判断文件是不是存在,在判断是不是路径

if(!exist){

NSLog(@"文件路径不存在");

return 0;

}

if(isDir){

int count =
0;

//目录

//目录中的所有相对路径,注意是相对路径,所以还要设置一个全路径

NSArray* pathContents = [fileManager
contentsOfDirectoryAtPath:path error:nil];

for (int i =
0; i<pathContents.count; i++) {

//用这种方法设置全路径

NSString* fullPath = [NSString
stringWithFormat:@"%@/%@",path,pathContents[i]];

count+=InDictionary(fullPath);

}

return count;

}

else{

// 不是目录

return InFile(path);

}

return 0;

}

NSUInteger InFile(NSString* path){

//文件的拓展名是txt h m c cpp mm才行
(不是.txt .h .c .cpp .m .mm)

NSString* extentName = [path
pathExtension];

if(![extentName
isEqualTo:@"txt"]){

return 0;

}

NSString* content = [NSString
stringWithContentsOfFile:path encoding:NSUTF8StringEncoding
error:nil];

//用"\n"把文件的内容分割,数组的每一项内容就是文件的每一行内容(array[0]就是文件的第一行的内容),所以数组的个数就是文件的行数

NSArray* array = [content
componentsSeparatedByString:@"\n"];

return array.count;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: