黑马程序员--OC基础--NSFileManager用法深入

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

/*

NSFileManager用法深入一

用于文件访问:获取文件、文件夹的属性和子目录的信息

*/

 1 #import <Foundation/Foundation.h>
 2
 3 int main() {
 4     @autoreleasepool {
 5
 6         NSFileManager *fm = [NSFileManager defaultManager];
 7
 8         NSString *filepath = @"/Users/apple/Desktop/Block.rtf";
 9
10          NSString *dirpath = @"/Users/apple/Desktop";
11
12        //1)获取文件的信息(属性)
13
14         NSDictionary *dict = [fm attributesOfItemAtPath:filepath error:nil];
15         NSLog(@"%@",dict);
16         //找出文件创建者
17         NSLog(@"%@,%@",[dict objectForKey:@"NSFileOwnerAccountName"],dict[@"NSFileOwnerAccountName"]);
18
19         //2)获取指定目录下的文件及子目录
20         //使用递归的方式获取当前目录及子目录下的所有的文件及文件夹(耗性能)
21
22       NSArray *subPath = [fm subpathsAtPath:dirpath];
23
24         //不是使用递归的方式获取(常用方式)
25         subPath = [fm subpathsOfDirectoryAtPath:dirpath error:nil];
26
27         //获取指定目录下的文件及目录信息(不获取后代路径)
28         subPath = [fm contentsOfDirectoryAtPath:dirpath error:nil];
29
30
31         NSLog(@"subPath = %@",subPath);
32
33         //3)获取指定目录下的子目录(不再获取后代路径)
34
35     }
36     return 0;
37 }

/*

NSFileManager用法深入二

如何创建目录

如何创建文件

如何copy文件

如何移动文件

如何删除文件

*/

 1 #import <Foundation/Foundation.h>
 2
 3 int main() {
 4     @autoreleasepool {
 5
 6       NSFileManager *fm = [NSFileManager defaultManager];
 7
 8
 9           //如何创建目录 ( 路径:/Users/apple/Desktop/aaa)
10
11         NSString *createDirPath =  @"/Users/apple/Desktop/ccc/bbb/aaa";
12
13         //createDirectoryAtPath:@"路径"withIntermediateDirectories:YES/NO创建路径的时候补全路径还是只创建最后的文件(中间NO缺路径会报错) attributes:属性的字典error:错误对象
14       BOOL isYES = [fm createDirectoryAtPath:createDirPath withIntermediateDirectories:YES attributes:nil error:nil];
15
16         if (isYES) {
17             NSLog(@"创建成功");
18         }else{
19
20             NSLog(@"创建失败");
21         }
22           //如何创建文件
23
24         NSString *str = @"每当我错过一个女孩,我就向山上放一块砖,于是就有了长城";
25         //writeToFile
26         //fm createFileAtPath:@"路径" contents:NSData类型的数据 attributes:文件的属性的字典
27         //创建NSData  是一个处理二进制数据的类
28         //NSString---->NSData
29
30         NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
31          isYES = [fm createFileAtPath:@"/Users/apple/Desktop/ccc/bbb/aaa/love.txt" contents:data attributes:nil];
32
33         if (isYES) {
34             NSLog(@"创建成功");
35         }else{
36
37             NSLog(@"创建失败");
38         }
39
40
41           //如何copy文件
42         NSString *path = @"/Users/apple/Desktop/ccc/bbb/love.txt";
43
44        isYES = [fm copyItemAtPath:createDirPath toPath:path error:nil];
45
46
47         if (isYES) {
48             NSLog(@"创建成功");
49         }else{
50
51             NSLog(@"创建失败");
52         }
53
54          //如何移动文件
55
56         isYES = [fm moveItemAtPath:path toPath:@"/Users/apple/Desktop/ccc/love.txt" error:nil];
57
58
59         if (isYES) {
60             NSLog(@"创建成功");
61         }else{
62
63             NSLog(@"创建失败");
64         }
65          //如何删除文件
66
67         isYES = [fm removeItemAtPath:@"/Users/apple/Desktop/ccc/bbb/aaa/love.txt" error:nil];
68
69
70         if (isYES) {
71             NSLog(@"创建成功");
72         }else{
73
74             NSLog(@"创建失败");
75         }
76
77     }
78     return 0;
79 }
时间: 2024-10-13 00:48:51

黑马程序员--OC基础--NSFileManager用法深入的相关文章

黑马程序员--oc基础第八篇

八. oc基础知识(Protocal) protocal 出发点:他仅仅是用来声明方法的. 1. 可以用来声明一大堆方法(但是不能声明成员变量) 2. 只要某个类遵守了这个协议,就相当于拥有这个协议中的所有方法声明 3. 只要父类遵守了某个协议,就相当于子类也遵守了 4. 协议列出了一组方法,有些是必须实现的,有些是选择实现(@optional).遵守协议就要实现协议里面所有必须实现的方法.         1. 定义一个协议 协议格式的编写 @protocol协议名称//为协议起一个有意义的名

黑马程序员--oc基础第六篇

六. oc基础知识(内存管理下) 总结:内存管理代码规范 1.只要调用alloc那么就必须调用release: 2.set方法的代码部分 *基本数据类型直接赋值. *如果是oc对象类型 - (void) setCar:(Car *)car { if(_car!=car) { [_car release]; _car=[Car retain]; } } 3.dealloc 部分的代码规范 *一定要[super dealloc ]放在最后面. *对self(当前)所拥有的其他对象做一次release

黑马程序员---OC基础8【block类型】【Protocol】

------- iOS培训.Android培训.Java培训.期待与您交流! ---------- [block类型] 1.block概念 block对象是一个C级别的语法和运行机制,不同之处,它除了有可执行代码以外,它还包含了与堆栈内存绑定的变量 方法的回调 block是一个类型,定义变量,用来存储代码块 2.block基本用法 block与函数很相似,有返回值类型,参数类型,主体: 返回值类型 (^block变量名)(形参列表) = ^(形参列表) { }; 没有参数可以写void,比如:i

黑马程序员---OC基础9【Foundation框架】【NSString介绍】【NSURL读写字符串】【NSString字符串比较】【NSString前后缀检查及搜索】【NSRange使用】

------- iOS培训.Android培训.Java培训.期待与您交流! ---------- [Foundation框架] 1.Foundation框架介绍 1)Foundation框架概念 框架是由许多类.方法.函数.文档按照一定的逻辑组织起来的集合 以便使研发程序变得 更容易在OS X下的Mac操作系统中大约有80个框架为所有程序开发奠定基础的框架称为Foundation 框架 2)Foundation框架的作用 Foundation框架是Mac\iOS中其他框架的基础 Foundat

黑马程序员--oc基础第十篇(foundation框架下、集合)

十 . oc基础(Foundation框架下) 1.下面介绍几种OC对象类型的存储结构:NSArray,NSDictionary,NSSet,以及基本数据类型封装类. NSNumber:*既然这几种数据结构都是用来存放对象类型的那么基本数据类型想要放入其中就要先对他们进行封装.使用NSNumber对基本数据类型进行封装. // // Created by keeganlee on 15/3/2. // Copyright (c) 2015年 keeganlee. All rights reser

黑马程序员--oc基础第九篇(Foundation框架上)

九 . oc基础(Foundation框架上) 1.四中结构体类型:NSRange,NSPoint,NSSize,NSRect 1>NSRange:是一个以为的结构由成员location和成员length共同组成. *NSRange的创建方式:NSRange range=NSMakeRange(2.4),代表范围是从2开始一直到5,location为2,length为4 *NSString *[email protected]“I love you”:NSRange range=[str ran

黑马程序员---OC基础7【ARC概念】【ARC对象内存管理】【分类Category】

------- iOS培训.Android培训.Java培训.期待与您交流! ---------- [ARC概念]   1.指针的分类 1)强指针,默认的情况下,所有的指针都是强指针,关键字strong: 2)弱指针,_ _weak关键字修饰符的指针 2.ARC概念 自动引用计数 永远不要写retain和release.autorelease三个关键字 编译器会在编译的时候自动插入retain和release.autorelease, 是一个编译器的特性:“垃圾回收”是运行时的特性 3.ARC工

黑马程序员--oc基础第五篇

五.oc的语法基础(内存管理上) 1.引用计数器:在每一个对象里都有一个引用计数器,占用4个字节的空间,在一个对象创建时引用计数器的值初始化为1. *给对象发送一条retain消息,可以使引用计数器的值+1(retain方法返回对象本身) *给对象发一条release消息,则计数器的值-1 *可以给对象发送retaincount消息来获取当前引用计数器的值 *当一个对象被销毁时,系统会自动向对象发送一条dealloc消息,就像遗言一样,可以对他进行改写,一但改写就必须调用[super deall

黑马程序员---OC基础5【点语法】【@property关键字】【@synthesize关键字】【id类型】【动态类型】【构造方法】

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- [点语法] 1 1.使用“点语法” 2 Student *stu= [[Student alloc]init]; 3         //调用set方法 4         [stu setAge:20]; 5         [stu setName:@"Jone"]; 6         //点语法:xcode的特性,Xcode帮我们做了代码替换 7         //点语法,

黑马程序员---OC基础6【内存管理】【手动内存管理】【单、多个对象的内存管理】【*@property参数】【@class的使用】【NSString类的内存管理】【autorelease使用】

------- iOS培训.Android培训.Java培训.期待与您交流! ---------- [内存管理] 1.内存管理概念 由于移动设备内存及其有限,所以每个app所占的内存也是有限的 需要回收一些不使用的空间 2.OC内存管理的范围 管理任何继承NSOject的对象,对其他的基本数据类型无效 主要管理堆区中的对象的内存管理   3.内存管理的原理 1)对象所有权概念 任何对象都可以能拥有一个或多个所有者,只要一个对象至少还拥有一个所有者,他就会继续存在 cocoasu所有权策略 任何自