iOS学习笔记-----文件操作
来源:互联网 发布:java opencv 二值化 编辑:程序博客网 时间:2024/06/09 23:53
一.沙盒
1.沙盒的概念
(1)iOS中每个App应用程序都有一个单独封闭的文件夹,这个文件夹称为沙盒 (sandbox)
(2)沙盒目录用来存放App的本地文件,例如:音频、视频、图片文件……..
(3)当前App应用程序没权限访问其他App的沙盒。(更安全)
(4)沙盒目录中有如下子目录:
- Documents :存放长期使用的文件.
- Library :系统存放文件.
- tmp :临时文件,App重启时,该目录下的文件清空.
2.获取沙盒的路径
文件是需要通过路径去访问.
// 沙盒路径---方法一 NSString *sandBoxPath = NSHomeDirectory(); NSLog(@"沙盒路径:%@", sandBoxPath); // 拼接路径方法一 NSString *path1 = [sandBoxPath stringByAppendingString:@"/Documents"]; NSLog(@"path1:%@", path1); // 拼接路径方法二 NSString *path2 = [sandBoxPath stringByAppendingPathComponent:@"Documents"]; NSLog(@"path2:%@", path2); // 沙盒路径---方法二,此方法不仅在iOS开发可以用,在mac开发下也可用 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSLog(@"paths:%@", paths);
二.文件操作
1.文件的创建
NSFileManager *fileManager = [NSFileManager defaultManager]; // NSHomeDirectory 在命令行模式是当前用户主目录 NSString *homePath = NSHomeDirectory(); NSLog(@"homePath:%@", homePath); NSString *str = @"好好学习,天天向上!"; // 拼接路径 NSString *filePath = [homePath stringByAppendingPathComponent:@"Desktop/file.txt"]; // 把NSString -----> NSData NSData *dataContents = [str dataUsingEncoding:NSUTF8StringEncoding]; // 把NSData写入硬盘 // 实例化NSFileManager // 创建文件所调用的方法 BOOL success = [fileManager createFileAtPath:filePath contents:dataContents attributes:nil]; if (success) { NSLog(@"文件创建成功或者已经存在"); }
2.文件夹的创建
// 绘制路径 NSString *dirPath = [homePath stringByAppendingPathComponent:@"Desktop/hua/yeah/ok"]; NSFileManager *fileManager = [NSFileManager defaultManager]; success = [fileManager createDirectoryAtPath:dirPath withIntermediateDirectories:YES attributes:nil error:nil]; if (success) { NSLog(@"文件夹创建成功或者已经存在"); }
3.读取文件
NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *filePath2 = [NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/file.txt"]; NSData *fileData = [fileManager contentsAtPath:filePath2]; NSString *str2 = [[NSString alloc] initWithData:fileData encoding:NSUTF8StringEncoding]; NSLog(@"str2:%@", str2);
4.剪切文件
NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *sourcePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/file.txt"]; NSString *dirPath2 = [NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/hua/file.txt"]; BOOL success = [fileManager moveItemAtPath:sourcePath toPath:dirPath2 error:nil]; if (success) { NSLog(@"文件剪切成功"); }
5.复制文件 如果目标文件已经存在,则剪切和复制都不会成功
NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *dirPath3 = [NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/file.txt"]; NSString *sourcePath2 = [NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/hua/file.txt"]; BOOL success = [fileManager copyItemAtPath:sourcePath2 toPath:dirPath3 error:nil]; if (success) { NSLog(@"文件复制成功"); }*/
6.删除文件
NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *sourcePath3 = [NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/file.txt"]; BOOL success =[fileManager removeItemAtPath:sourcePath3 error:nil]; if (success) { NSLog(@"文件删除成功"); }
7.读取文件属性
NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *sourcePath4 = [NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/hua/file.txt"]; NSDictionary *dic = [fileManager attributesOfItemAtPath:sourcePath4 error:nil]; NSLog(@"dic:%@", dic);
三.文件读写
// 1.NSString 写入文件 NSString *str = @"同学们太棒了"; NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/string.txt"]; // atomically:控制重写文件是否保护,YES:会确认写入的安全性,NO:会直接覆盖源文件 BOOL success =[str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil]; if (success) { NSLog(@"写入数据成功"); } // 2.NSArray 写入文件 NSArray *array = @[@"huang", @"rui", @"hua"]; NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/array.plist"]; BOOL success = [array writeToFile:path atomically:YES]; if (success) { NSLog(@"写入数据成功"); } // 3.NSDictionary 写入文件 NSDictionary *dic = @{ @"key" : @"value", @"liuzhengyi" : @"xueba", @"lilong" : @"jingshenhao", @"tangyupeng" : @"nanshen" }; NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/dictionary.plist"]; BOOL success = [dic writeToFile:path atomically:YES]; if (success) { NSLog(@"写入数据成功"); } */ // 4.读取文件 // 读取文本 NSString *path1 = [NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/string.txt"]; NSString *str = [NSString stringWithContentsOfFile:path1 encoding:NSUTF8StringEncoding error:nil]; NSLog(@"str:%@", str); // 读取数组文件(plist) NSString *path2 = [NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/array.plist"]; NSArray *array = [NSArray arrayWithContentsOfFile:path2]; NSLog(@"array:%@", array); // 读取字典文件(plist); NSString *path3 = [NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/dictionary.plist"]; NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:path3]; NSLog(@"dic:%@", dic);
0 0
- iOS学习笔记-----文件操作
- ios学习笔记:文件操作(NSFileManager)iOS的沙盒中
- 【初学】iOS学习笔记-本地化之Plist文件读写操作
- iOS学习笔记——文件操作(NSFileManager)
- iOS学习笔记——文件操作(NSFileManager
- iOS学习笔记——文件操作(NSFileManager)
- ios学习笔记之文件操作(NSFileManager)
- iOS学习笔记 ——文件操作(NSFileManager)
- [学习笔记] 文件操作
- iOS 文件学习笔记
- ios学习笔记(二)-----ios中对文件的操作
- delphi学习笔记--文件操作
- Ubuntu_文件操作学习笔记
- Perl文件操作学习笔记
- C#学习笔记:文件操作
- java文件操作学习笔记
- Python学习笔记--文件操作
- Python学习笔记<文件操作>
- 关于UIwebView判断是否滑到底
- github使用笔记-- GitHub Desktop 下载、安装、使用
- 通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界
- 分布式系统中的一致性协议之两阶段提交协议(2PC)
- Ubuntu下TL-WN722N无线网卡adhoc模式配置使用
- iOS学习笔记-----文件操作
- 数组做数据成员
- Pracelable接口
- iOS 点滴积累
- Remove Duplicates from Sorted List
- 【fedora】设置中文为默认语言
- 【干货】Spring MVC与JAX-RS比较与分析
- ios点击空白界面退出键盘问题。
- Spark报错 driver did not authorize commit