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. cuda线程/线程块索引小结

    内建变量: threadIdx(.x/.y/.z代表几维索引):线程所在block中各个维度上的线程号 blockIdx(.x/.y/.z代表几维索引):块所在grid中各个维度上的块号 blockD ...

  2. yum仓库,RPM打包

    rpm命令: -qa  查看软件包是否被安装 -ivh 安装rpm包 -e 卸载包 -qpl 查看rpm包中有什么东西 -qi 查看软件的详细安装信息:安装路径 安装fpm #FPM是Ruby模块yu ...

  3. salesforce中soql及sosl的伪‘Like’模糊检索

    salesforce里有soql.sosl两种查询语法,soql针对模糊搜索也有‘like’关键字,然而只能针对其自带字段如:Name.Id:对于自定义添加的字段如:Message__c.Note__ ...

  4. css3动画知识点

    杨龙飞 杨龙飞 杨龙飞 杨龙飞 杨龙飞 杨龙飞 <!DOCTYPE html><html><head><style> div{width:100px;h ...

  5. 核心模块Path

    核心模块Path 作用:用于帮助程序员来操作硬盘上的路径. 核心模块注意点:当引用核心模块的时候直接require('模块名'),不需要加任何路径或者后缀. Path中的常用API: dirname( ...

  6. cookie技术简介

    Cookie简介 众所周知,HTTP协议是一个无状态的协议.一个Web应用由很多个Web页面组成,每个页面都有唯一的URL来定义.用户在浏览器的地址栏输入页面的URL,浏览器就会向Web Server ...

  7. Python之路-计算机基础

    一·计算机的组成 一套完整的计算机系统分为:计算机硬件,操作系统,软件.   硬件系统:运算器,控制器和存储器 ,输入设备,输出设备. 1.运算器:负责算数运算和逻辑运算,与控制器一起组成CPU. 2 ...

  8. Git基本操作命令

    先配置用户和邮箱: Administrator@USER-20150302NL MINGW32 ~$ git config --global user.name "youname" ...

  9. linux cut命令详解

    cut是一个选取命令,就是将一段数据经过分析,取出我们想要的.一般来说,选取信息通常是针对"行"来进行分析的,并不是整篇信息分析的. (1)其语法格式为:cut  [-bn] [f ...

  10. maven私服搭建nexus介绍(二)

    1.各个仓库介绍 Hosted:宿主仓库 主要放本公司开发的SNAPSHOTS测试版本,RELEASES正式发行版.合作公司第三方的jar包. Proxy:代理仓库 代理中央仓库:代理Apache下测 ...