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. 配置远程服务器,使hyper-v能够连接网络

    一般远程服务器只有一个网卡和IP,如果你要在服务器上装虚拟机,那么要使虚拟机能够连接网络,必须要创建虚拟交换机. 如果创建虚拟交换机并桥接,那么就会改变IP地址,改变IP地址,就连接不上远程服务器.造 ...

  2. 前端学PHP之Smarty模板引擎

    前面的话 对PHP来说,有很多模板引擎可供选择,但Smarty是一个使用PHP编写出来的,是业界最著名.功能最强大的一种PHP模板引擎.Smarty像PHP一样拥有丰富的函数库,从统计字数到自动缩进. ...

  3. CSV工具类

    分享自己昨天写的CSV工具类, 主要实现解析CSV格式, 直接上代码 #region private /// <summary> /// 从sr当前位置解析一个栏位 /// </su ...

  4. Weblogic虚拟目录

    p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; f ...

  5. span表情输入框 --- Author: rose && lvyerose@163.com

        像QQ等社交聊天中,不可或缺的一部分就是我们常用的表情输入了,有时候有趣的表情同样能吸引住用户达到用户常驻的效果,当然,我们开发的时候不用去研究如何才能做到有趣,如何才能做到足够吸引用户,我们 ...

  6. MySQL flashback 功能

    1. 简介 mysqlbinlog flashback(闪回)用于快速恢复由于误操作丢失的数据.在DBA误操作时,可以把数据库恢复到以前某个时间点(或者说某个binlog的某个pos).比如忘了带wh ...

  7. JavaScript高级程序设计---学习笔记(四)

    1.全局变量不能通过delete操作符删除,而直接在window对象上定义的属性可以. var age = 29; window.color = "red"; delete age ...

  8. SQL Server 跨库复制表方法小笔记

    insert into tableA (column1,column2.....) SELECT * FROM OPENDATASOURCE('SQLOLEDB', 'Data Source=127. ...

  9. ReentrantLock 以及 AQS 实现原理

    什么是可重入锁?       ReentrantLock是可重入锁,什么是可重入锁呢?可重入锁就是当前持有该锁的线程能够多次获取该锁,无需等待.可重入锁是如何实现的呢?这要从ReentrantLock ...

  10. angular双向数据绑定

    <body ng-app> //三个view都会变 <input type="text" ng-model="name" value=&quo ...