NSFileManager介绍

 NSFileManager是用来管理文件系统的
它可以用来进行常见的文件\文件夹操作(拷贝、剪切、创建等) NSFileManager使用了单例模式singleton
使用defaultManager方法可以获得那个单例对象
[NSFileManager defaultManager]

NSFileManager的基本用法

 path这个文件或文件夹(目录)是否存在
-(BOOL)fileExistsAtPath:(NSString *)path;
path这个文件或文件夹是否存在,isDirectory代表是否为文件夹
-(BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *) isDirectory;
path这个文件或文件夹是否可读
-(BOOL)isReadableFileAtPath:(NSString *)path;
path这个文件或文件夹是否可写
-(BOOL)isWritableFileAtPath:(NSString *)path;
path这个文件或文件夹是否可删除
-(BOOL)isDeletableFileAtPath:(NSString *)path; 注意:系统目录不允许删除   获得path这个文件/文件夹的属性
  -(NSDictionary *) attributesOfItemAtPaht:(NSString *) paht error:(NSError **)error;
  
  获得子目录信息(包括后代元素路径信息)
  NSArray *paths = [ NSFileManager subpathsAtPath:path];
  
  获取path的所有子路径(后代路径),上面两个方法功能一样
  -(NSArray *)subpathsOfDirectoryAtPaht:(NSString *)path error:(NSError **)error;   获得path的当前子路径(path下地所有直接子内容,path必须是一个目录)
  -(NSArray *) contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error;
  
  获取文件内容
  -(NSObject *)contentsAtPaht :(NSString *)path;
  

NSFileManager对文件的 创建 移动

 只能创建文件夹(createIntermediates为YES代表自动创建中间的文件夹)
注意:如果要创建的目录已经存在,则本次创建失败
-(BOOL)createDirectoryAtPath:(NSString *)path withIntermediateDirectories:(BOOL)createIntermediates attributes:(NSDictionary *)attributes error:(NSError **)error; 文件的拷贝,如果目标目录已经存在同名文件,则无法拷贝
-(BOOL)copyItemAtPath:(NSString *) srcPath toPath:(NSString *)dstPath error :(NSError **)error;
文件的移动
-(BOOL)moveItemAtPath:(NSString *) srcPath toPath:(NSString *)dstPath error :(NSError **)error;
删除文件
-(BOOL) removeItemAtPath:(NSString *)path error:(NSError **) error; 创建文件:
把字符串转换为NSData,(NSData是用来存储二进制字节数据的)
NSData *data =[s1 dataUsingEncoding:NSUTF8String Encoding];
-(BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr;

OC中NSFileManager的更多相关文章

  1. OC中文件的操作

    OC中文件操作,在之前的文章中,已经接触到了文件的创建了,但是那不是很具体和详细,这篇文章我们就来仔细看一下OC中是如何操作文件的: 第一.首先来看一下本身NSString类给我们提供了哪些可以操作文 ...

  2. OC中加载html5调用html方法和修改HTML5内容

    1.利用webView控件加载本地html5或者网络上html5 2.设置控制器为webView的代理,遵守协议 3.实现代理方法webViewDidFinishLoad: 4.在代理方法中进行操作H ...

  3. java中的继承与oc中的继承的区别

    为什么要使用继承? 继承的好处: (1)抽取出了重复的代码,使代码更加灵活 (2)建立了类和类之间的联系 继承的缺点: 耦合性太强 OC中的继承 1.OC中不允许子类和父类拥有相同名称的成员变量名:( ...

  4. Swift: 比较Swift中闭包传值、OC中的Block传值

    一.介绍 开发者对匿名函数应该很清楚,其实它就是一个没有名字的函数或者方法,给人直观的感觉就是只能看到参数和返回值.在iOS开发中中,它又有自己的称呼,在OC中叫Block代码块,在Swift中叫闭包 ...

  5. OC中类别、扩展、协议与委托

    一.类别(category) 类别(category)——通过使用类别,我们可以动态地为现有的类添加新方法,而且可以将类定义模块化地分不到多个相关文件中.通常只在类别中定义方法.(类别,接口部分的定义 ...

  6. OC中的私有变量和description

    .OC中的私有变量 在类的实现即.m @implementation中也可以声明成员变量,但是因为在其他文件中通常都只 是包含头文件而不会包含实现文件,所以在.m文件中声明的成员变量是@private ...

  7. Oc中的数组

    ========================== 数组 ========================== 一.认识数组 oc中可以把NSObject对象的子类放到数组这个集合中,但是int.f ...

  8. OC中面向对象2

    一. 定义OC的类和创建OC的对象 接下来就在OC中模拟现实生活中的情况,创建一辆车出来.首先要有一个车子类,然后再利用车子类创建车子对象 要描述OC中的类稍微麻烦一点,分2大步骤:类的声明.类的实现 ...

  9. OC中的面向对象语法

    一. 面向对象和面向过程思想 OC是面向对象的,C是面向过程的.面向对象和面向过程只是解决问题的两种不同思想 1. 面向对象和面向过程的区别 1) 以用电脑听歌为例子 a) 面向过程 打开电脑 播放电 ...

随机推荐

  1. 用javascript动态改变网页文字大小

    <script>function setFontSize(size){document.getElementById('bottom').style.fontsize=size+'pt'; ...

  2. 用C写一个web服务器(二) I/O多路复用之epoll

    .container { margin-right: auto; margin-left: auto; padding-left: 15px; padding-right: 15px } .conta ...

  3. 编程语言基础:用“收集器”理解各种语言(C++、Java、Python)中的可变参数!

    [C++通常用一种特殊的List收集可变形参,而Java通常用一个数组,Python收集为tuple.dict.] 1.Java中的可变参数的函数:void f(ClassName... object ...

  4. iOS开发之UIPopoverController

    1.概述 是iPad开发中常见的一种控制器(在iPhone上不允许使用),跟其他控制器不一样的是,它直接继承自NSObject,并非继承自UIViewController,它只占用部分屏幕空间来呈现信 ...

  5. 开启Tomcat远程调试(转)

    原文链接:http://www.07net01.com/2016/11/1721293.html 如何远程调试tomcat 一,linux环境下 1. 服防火墙打开8000端口,允许外网访问:2. 修 ...

  6. SharePoint JavaScript 客户端对象使用视频教程

    本次视频教程是为大家介绍如何使用SharePoint JavaScript客户端对象,包括对于站点.列表.文档库.列表项.文件夹.文件和附件等基本对象的操作,同时,为大家举几个简单的应用的例子,让大家 ...

  7. 在线阅读PDF文件js插件——pdf.js

    最近接到一个需求大致是这样的,要求在移动端和pc端能够在线阅读pdf文件,类似百度文库的功能. 首先想到的就是插件,github(全球最大的男性交友网站- -恩)上一大堆啊,首先找到一个PDFobje ...

  8. XJOI1680阿猫的实验

    阿猫的实验 阿猫很喜欢生物学.他还在今年的全国中学生生物学联赛中获得了一等奖.一天,阿猫在实验室听说了这样一种繁殖能力很强的老鼠.这种老鼠在出生后的第一个月,可以生出a 对老鼠:第二个月,可以生出b ...

  9. [原]node.js使用感想

    最近尝试了使用node.js,但因为不是太深入(小项目,还没做完),所以不能谈心得谈经验,就来谈谈使用感想. node.js和以往的cgi接口的服务器+cgi程序(如apache+phpmod)中的单 ...

  10. 老李分享:持续集成学好jenkins之Git和Maven配置 1

    老李分享:持续集成学好jenkins之Git和Maven配置   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣 ...