黑马程序员 OC语言 - 8 NSFileManager、NSSet、NSMutableSet
来源:互联网 发布:淘宝店招是什么 编辑:程序博客网 时间:2024/05/16 11:04
若排版有错误,请查看PDF版:http://pan.baidu.com/s/1nt7JHNV
一、 NSFileManager
1. 实例
计算文件的代码行数
1) path : 文件的全路径(可能是文件夹、也可能是文件)
2) 返回值 int :代码行数
3) 考察NSString、NSArray的使用
4) NSFileManager
#import <Foundation/Foundation.h>
NSUIntegercodeLineCount(NSString *path)
{
// 1、获得文件管理者
NSFileManager *mgr = [NSFileManagerdefaultManager];
// 2、测试传入的路径是否存在,是否为文件夹
BOOL isDir;
BOOL isExist = [mgrfileExistsAtPath:path isDirectory:&isDir];//若文件存在:isExist=YES,若文件不存在:isExist=NO若是文件夹:isDir=YES;若不是文件夹:isDir=NO
// 3、如果不存在,直接返回0
if(!isExist)
{
NSLog(@"文件路径不存在!!!!!!");
return 0;
}
// 代码能来到着,说明路径存在
if (isDir) // 是文件夹
{
// 获得当前文件夹path下面的所有内容(文件夹、文件)
NSArray *array = [mgrcontentsOfDirectoryAtPath:path error:nil];
// 定义一个变量保存path中所有文件的总行数
int count = 0;
// 遍历数组中的所有子文件(夹)名
for (NSString *filenamein array)
{
// 获得子文件(夹)的全路径
NSString *fullPath = [NSStringstringWithFormat:@"%@/%@", path, filename];
// 累加每个子路径的总行数
count += codeLineCount(fullPath);
}
return count;
}
else//是文件
{
// 判断文件的拓展名(忽略大小写)
NSString *extension = [[pathpathExtension] lowercaseString];
if (![extensionisEqualToString:@"h"]
&& ![extension isEqualToString:@"m"]
&& ![extensionisEqualToString:@"c"])//文件拓展名不是h,不是m,也不是c
{
return 0;
}
// 加载文件内容
NSString *content = [NSStringstringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
// 将文件内容切割为每一行
NSArray *array = [contentcomponentsSeparatedByString:@"\n"];//用"\n"来分割字符串,并存储到数组中
// 删掉文件路径前面的/Users/Mac/Desktop/OC
NSRange range = [path rangeOfString:@"/Users/Mac/Desktop/OC"];
NSString *str = [pathstringByReplacingCharactersInRange:range withString:@""];
// 打印文件路径和行数
NSLog(@"%@ - %ld", str, array.count);
return array.count;
}
}
int main()
{
NSUInteger count = codeLineCount(@"/Users/Mac/Desktop/OC");
NSLog(@"%ld", count);
return 0;
}
二、 NSSet、NSMutableSet
1. NSSet和NSArray对比
1) 相同点
a) 都是集合,都能存放多个OC对象
b) 只能存放OC对象,不能存放非OC对象类型(基本数据类型:int、char、float等)
c) 本身都不可变,都有一个可变的子类
2) 不同点
NSArray有顺序,NSSet没有顺序
2. NSMutableSet
NSMutableSet *s = [NSMutableSet set];
// 添加元素
[s addObject:@"hack"];
// 删除元素
[sremoveObject:@"hack"];
3. NSSet的基本使用
NSSet *s = [NSSet set];
NSSet *s2 = [NSSet setWithObjects:@"jack",@"rose",@"jack2",@"jack3",nil];
// 随机拿出一个元素
NSString *str = [s2 anyObject];
- 黑马程序员 OC语言 - 8 NSFileManager、NSSet、NSMutableSet
- 黑马程序员-oc基础-集合NSSet,NSMutableSet
- 04.黑马程序员-NSSet、NSMutableSet
- NSSet、NSMutableSet-OC+class
- OC-FUNDATION-NSSet&NSMutableSet
- OC NSSet、NSMutableSet、NSArray、NSMutableArray
- 黑马程序员---Foundation常用类之NSSet/NSMutableSet
- 黑马程序员——Foundation学习之NSSet\NSMutableSet
- OC中NSDictionary、NSMutableDictionary、NSSet、NSMutableSet
- OC-045.NSSet类和NSMutableSet类
- oc 知识总结四 (NSSet、NSMutableSet)
- 黑马程序员——Objective-C学习之无序集合(NSSet\NSMutableSet)
- 黑马程序员-[OC语言] 第八篇:foundation框架之 NSFileManager、NSDate概述
- 黑马程序员——OC语言加强---NSFileManager介绍和用法
- NSSet、NSMutableSet
- 黑马程序员18——OC之Fundation(NSSet)
- [OC学习笔记]NSSet、NSMutableSet、NSIndexSet常用方法
- iOS开发-Day19-OC NSDictionary&NSMutableDictionary&NSSet&NSMutableSet
- Xcode 5中调试 EXC_BAD_ACCESS
- 数据分析过程的阶段
- eXosip协议栈主动发送notify数据包的问题
- XDOJ1079 - 贝尔
- YUV420图像格式
- 黑马程序员 OC语言 - 8 NSFileManager、NSSet、NSMutableSet
- 黑马程序员_面向对象
- 我们会一直支持你的柯振东
- 你能在所有的时候欺骗某些人,也能在某些时候欺骗所有的人
- 线性表的基本操作
- 数据结构之归并排序
- 带我去的千万千万欠我顿
- C/C++教材推荐
- 个人版机房收费系统总结