文件操作(NSFileManager)

iOS 沙盒机制,只能访问自己应用目录下的文件。每个沙盒包括三个文件夹:Documents,Library和tmp。Library包含Caches,Praferences目录。

1.获取沙盒根目录

//沙盒根目录
    NSLog(@"%@",NSHomeDirectory());

2.获取Documents目录路径

1 //documents目录 ,两种方式
2     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
3     NSLog(@"%@",[paths objectAtIndex:0]);
4     NSLog(@"%@",[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]);

3.获取Library目录路径

1 //library目录
2     NSArray *pathss = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
3     NSLog(@"%@",[pathss objectAtIndex:0]);
4     NSLog(@"%@",[NSHomeDirectory() stringByAppendingPathComponent:@"Library"]);

4.获取Cache目录路径

1 //Cache目录
2     NSArray *pathss1 = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
3     NSLog(@"%@",[pathss1 objectAtIndex:0]);

5.获取tmp目录路径

//tmp目录
    NSLog(@"%@",NSTemporaryDirectory());

Documents:苹果建议将程序创建产生的文件以及应用浏览产生的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录

Library:存储程序的默认设置或其它状态信息;

Library/Caches:存放缓存文件,保存应用的持久化数据,用于应用升级或者应用关闭后的数据保存,不会被itunes同步,所以为了减少同步的时间,可以考虑将一些比较大的文件而又不需要备份的文件放到这个目录下。

tmp:提供一个即时创建临时文件的地方,但不需要持久化,在应用关闭后,该目录下的数据将删除,也可能系统在程序不运行的时候清除。

 

6.创建文件夹和文件,以及对文件的写入,读取,属性,删除

 1 //创建文件夹
 2     NSFileManager *fileManger = [NSFileManager defaultManager];
 3     NSString *test = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"test"];
 4     //创建目录
 5     BOOL res = [fileManger createDirectoryAtPath:test withIntermediateDirectories:YES attributes:nil error:nil];
 6     if (res) {
 7         NSLog(@"创建目录成功");
 8     }
 9 //创建文件
10     NSString * file = [test stringByAppendingPathComponent:@"file.txt"];
11     BOOL ress = [fileManger createFileAtPath:file contents:nil attributes:nil];
12     if (ress) {
13         NSLog(@"创建文件成功");
14     }
15 //写数据到文件,注意:文件要存在。
16     NSString *documentsPath = [paths objectAtIndex:0];
17     NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"test"];
18     NSString *testpath = [testDirectory stringByAppendingPathComponent:@"file.txt"];
19     NSString *content = @"这是测试内容!";
20     BOOL resss = [content writeToFile:testpath atomically:YES encoding:NSUTF8StringEncoding error:nil];
21     if (resss) {
22         NSLog(@"文件写入成功");
23     }else
24     {
25         NSLog(@"shibai");
26     }
27     
28 //读文件中的数据
29     NSString * data = [NSString stringWithContentsOfFile:testpath encoding:NSUTF8StringEncoding error:nil];
30     NSLog(@"%@",data);
31     
32 //文件属性
33     
34 //删除文件
35     
36     BOOL ressss = [fileManger removeItemAtPath:testpath error:nil];
37     if (ressss) {
38         NSLog(@"删除成功");
39     }
40 //判断文件是否存在,
41     NSLog(@"%@",[fileManger fileExistsAtPath: testpath]?@"YES":@"NO");
42 }

 

转载于:https://www.cnblogs.com/kfgcs/p/6386859.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值