iOS的沙盒机制。应用仅仅能訪问自己应用文件夹下的文件。iOS不像android。没有SD 卡概念。不能直接訪问图像、视频等内容。

iOS应用产生的内容,如图像、文件、缓存内容等都必须存储在自己的沙盒内。默认情况下,每一个沙盒含有3个文件 夹:Documents, Library 和 tmp。

Library包括Caches、Preferences文件夹。 Documents:苹果建议将程序创建产生的文件以及应用浏览产生的文件数据保存在该文件夹下,iTunes备份和恢复的时候会包括此文件夹 Library:存储程序的默认设置或其他状态信息; Library/Caches:存放缓存文件,保存应用的持久化数据。用于应用升级或者应用关闭后的数据保存,不会被itunes同步,所以为了降低同步的时间,能够考虑将一些比較大的文件而又不须要备份的文件放到这个文件夹下。 tmp:提供一个即时创建暂时文件的地方,但不须要持久化。在应用关闭后,该文件夹下的数据将删除。也可能系统在程序不执行的时候清除。 a:获取应用沙盒根路径: -(void)dirHome{ NSString *dirHome=NSHomeDirectory(); NSLog(@"app_home: %@",dirHome); } b:获取Documents文件夹路径: -(NSString *)dirDoc{ //[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSLog(@"app_home_doc: %@",documentsDirectory); return documentsDirectory; } c:获取Library文件夹路径: -(void)dirLib{ //[NSHomeDirectory() stringByAppendingPathComponent:@"Library"]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); NSString *libraryDirectory = [paths objectAtIndex:0]; NSLog(@"app_home_lib: %@",libraryDirectory); } d:获取Cache文件夹路径: -(void)dirCache{ NSArray *cacPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); NSString *cachePath = [cacPath objectAtIndex:0]; NSLog(@"app_home_lib_cache: %@",cachePath); } e:获取Tmp文件夹路径: -(void)dirTmp{ //[NSHomeDirectory() stringByAppendingPathComponent:@"tmp"]; NSString *tmpDirectory = NSTemporaryDirectory(); NSLog(@"app_home_tmp: %@",tmpDirectory); } f:创建文件夹: -(void *)createDir{ NSString *documentsPath =[self dirDoc]; NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"test"]; // 创建文件夹 BOOL res=[fileManager createDirectoryAtPath:testDirectory withIntermediateDirectories:YES attributes:nil error:nil]; if (res) { NSLog(@"文件夹创建成功"); }else NSLog(@"文件夹创建失败"); } g:创建文件 -(void *)createFile{ NSString *documentsPath =[self dirDoc]; NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"test"]; NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *testPath = [testDirectory stringByAppendingPathComponent:@"test.txt"]; BOOL res=[fileManager createFileAtPath:testPath contents:nil attributes:nil]; if (res) { NSLog(@"文件创建成功: %@" ,testPath); }else NSLog(@"文件创建失败"); } h:写数据到文件: -(void)writeFile{ NSString *documentsPath =[self dirDoc]; NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"test"]; NSString *testPath = [testDirectory stringByAppendingPathComponent:@"test.txt"]; NSString *content=@"測试写入内容!"; BOOL res=[content writeToFile:testPath atomically:YES encoding:NSUTF8StringEncoding error:nil]; if (res) { NSLog(@"文件写入成功"); }else NSLog(@"文件写入失败"); } i:读文件数据: -(void)readFile{ NSString *documentsPath =[self dirDoc]; NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"test"]; NSString *testPath = [testDirectory stringByAppendingPathComponent:@"test.txt"]; // NSData *data = [NSData dataWithContentsOfFile:testPath]; // NSLog(@"文件读取成功: %@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]); NSString *content=[NSString stringWithContentsOfFile:testPath encoding:NSUTF8StringEncoding error:nil]; NSLog(@"文件读取成功: %@",content); } j:文件属性: -(void)fileAttriutes{ NSString *documentsPath =[self dirDoc]; NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"test"]; NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *testPath = [testDirectory stringByAppendingPathComponent:@"test.txt"]; NSDictionary *fileAttributes = [fileManager attributesOfItemAtPath:testPath error:nil]; NSArray *keys; id key, value; keys = [fileAttributes allKeys]; int count = [keys count]; for (int i = 0; i < count; i++) { key = [keys objectAtIndex: i]; value = [fileAttributes objectForKey: key]; NSLog (@"Key: %@ for value: %@", key, value); } } k:删除文件: -(void)deleteFile{ NSString *documentsPath =[self dirDoc]; NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"test"]; NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *testPath = [testDirectory stringByAppendingPathComponent:@"test.txt"]; BOOL res=[fileManager removeItemAtPath:testPath error:nil]; if (res) { NSLog(@"文件删除成功"); }else NSLog(@"文件删除失败"); NSLog(@"文件是否存在: %@",[fileManager isExecutableFileAtPath:testPath]?@"YES":@"NO"); }

转载于:https://www.cnblogs.com/blfbuaa/p/6940502.html

IOS--文件管理NSFileManager相关推荐

  1. IOS文件管理-NSFileMangager-NSdata

    Ios下的文件管理, Ios下不像windows 文件系统那样可以访问任何的文件目录,如C盘.D盘什么的.在Ios中每个应用程序只能访问当前程序的目录,也即sandbox(沙盒模型). iOS为每个应 ...

  2. IOS 文件管理 2

    IOS开发-文件管理(二) 五.Plist文件 String方式添加               NSString *path = [NSHomeDirectory( )  stringByAppen ...

  3. iOS 文件操作 NSFileManager

    文章目录 相关知识 相关文件操作 NSFileManager和NSFileHandle 对象等复杂类型的读写操作 参考 相关知识 沙盒机制 每一个iOS应用程序都会为自己创建一个文件系统目录,这个独立 ...

  4. IOS文件管理系统:沙盒、NSFileManager、NSFileHandle、NSCoding、NSKeyedArchiver解析

    什么是沙盒? 苹果为我们每个app都分配了一个固定的文件夹,我们在开发过程中可以向文件夹存入我们想要存储的数据,同时也能从这些文件夹取这些数据,但是我们不能取到其他app所存储的数据.简单说,沙盒就是 ...

  5. iOS开发-文件管理(一)

    一.iOS中的沙盒机制 iOS应用程序只能对自己创建的文件系统读取文件,这个独立.封闭.安全的空间,叫做沙盒.它一般存放着程序包文件(可执行文件).图片.音频.视频.plist文件.sqlite数据库 ...

  6. iOS开发-文件管理

    一.iOS中的沙盒机制 iOS应用程序只能对自己创建的文件系统读取文件,这个独立.封闭.安全的空间,叫做沙盒.它一般存放着程序包文件(可执行文件).图片.音频.视频.plist文件.sqlite数据库 ...

  7. iOS中的文件管理操作

    转载自 一.iOS中的沙盒机制 iOS应用程序只能对自己创建的文件系统读取文件,这个独立.封闭.安全的空间,叫做沙盒.它一般存放着程序包文件(可执行文件).图片.音频.视频.plist文件.sqlit ...

  8. ios开发----文件管理

    转载自http://seven-sally.lofter.com/post/19d861_54e83e 一.iOS中的沙盒机制 iOS应用程序只能对自己创建的文件系统读取文件,这个独立.封闭.安全的空 ...

  9. 文件管理(NSfilemanager)

                    一.文件管理         NSFileManager中包含了用来查询单词库目录.创建.重命名.删除目录以及获取/设置文件属性的方法(可读性,可编写性等等). - ( ...

最新文章

  1. WAIC 2021 | 百度量子计算段润尧:从理论到实践谈量子人工智能
  2. Keras vs PyTorch:谁是第一深度学习框架?
  3. golang 包含 数组_golang 数组
  4. Java多线程-CountDownLatch用法
  5. 深入解析Python中函数的参数与作用域
  6. Mysql解决存入表情报错的问题,调整编码为utf8mb4
  7. 基于品类关系,虚拟类目如何建设?
  8. Linux学习笔记2 - 字符界面
  9. Scapy 中文文档:三、使用方法
  10. 计算机excel减法函数,excel减法函数的使用
  11. 在线excel表格,支持协同编辑
  12. Java筑基24-集合02-List
  13. VS Code环境下编辑、编译、下载Keil工程代码
  14. 多个迹象表明,瑞幸咖啡已进入新的发展阶段
  15. batchsize和数据量设置比例_1. 项目涉及技术
  16. php实训参考文献,SPSS实训心得体会
  17. BlueHost和SiteGround美国主机商对比评测
  18. 三维向量类Vector类封装,包含三维向量一些基本运算
  19. 新三板的合作门槛是多少?
  20. 【评价指标】如何计算模型评估中的AUC和AUPR值

热门文章

  1. 售票系统的组件图和部署图_识读配电箱系统图
  2. python tkinter控件_Python3 tkinter基础 Label pack 设置控件在窗体中的位置
  3. python有道自动翻译_利用python写一个有道翻译的脚本
  4. python实现lenet_吴裕雄 python 神经网络TensorFlow实现LeNet模型处理手写数字识别MNIST数据集...
  5. 中点和中值滤波的区别_频谱仪和EMI测试接收机什么区别?安泰维修中心分享
  6. vue 保存时清空iuput_vue清空input file
  7. matlab serial 38400,这个程序的波特率能帮我改到38400吗?
  8. 用计算机怎么弹离人愁数字,拇指琴新手入门曲谱——离人愁
  9. E1 PCM复用设备常见故障及处理方法
  10. 为什么单模光端机价格比多模光端机价格高