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;
}
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;
}
相关文章推荐
- hdu 5523 Game 【BestCoder Round #61 (div.2)】
- 英文标点
- Android开发者网址导航
- JAVA基础2-标识符、关键字、数据类型与运算符
- STL 中 lower_bound 与 upper_bound 与 二分查找
- uva 10570——Meeting with Aliens
- android studio中api 23的消息推送机制
- [leetcode 246] Strobogrammatic Number
- Android团队
- 【Linux 内核】文件系统(概念篇)
- 【疯狂的架构】牛公司组织结构图一览:华为,阿里,腾讯,百度,新浪……
- Codeforces Round #328 (Div. 2) B. The Monster and the Squirrel
- HDU--3466(0-1背包+贪心/后效性)
- 【鸟哥的linux私房菜-学习笔记】Bash shell之管线命令
- ThinkPHP3.2.3中典型的ajax获取json数据方法
- codeforces #328 C. The Big Race
- 如何做到一个分数序列和
- python os目录和文件相关操作
- Coursera_Stanford_ML_ex7_K-means and PCA 作业记录
- 常见 门户布局