Objective-C文件和目录操作,IOS文件操作,NSFileManager使用文件操作:

objective-c通过使用NSFileManager类来管理和操作文件、目录,NSFileManager,文件或目录是使用文件的路径名的唯一标示。每个路径名都是一个NSString对象。

NSFileManager对象通过defaultManager方法来创建实例
列如:

NSFileManager *fm = [NSFileManager defaultManager];

删除某个文件
[fm removeItemAtPath:@"filename" error:NULL];

error:参数是一个指向NSError对象的指针,能够提供错误的信息。如果指定为NULL的话就会使用默认的行为,返回值是BOOL类型的方法,操作成功返回YES反之返回NO

判断文件是否被删除
if([fm removeItemAtPath:@"filename" error:NULL]==NO){
NSLog(@"文件删除失败");
return 1;
}

NSFileManager常用的文件方法:

-(NSData*)contentsAtPath:path 从一个文件中读取数据

-(BOLL)createFileAtPath:path contents:(NSData*)data attributes: attr 向一个文件写入数据

-(BOOL)removeItemAtPath:path error:err 删除一个文件

-(BOOL)moveItemAtPath:from toPath:to error:err 重命名或移动一个文件(to 不能是已存在的)

-(BOOL)copyItemAtPath:from toPath:to error:err 复制文件(to 不能是已存在的)

-(BOOL)contentsEqualAtPath:path1 andPath:path2 比较这两个文件的内容

-(BOOL)fileExistsAtPath:path 测试文件是否存在

-(BOOL)isReadableFileAtPath:path 测试文件是否存在,并且是否能执行读操作

-(BOOL)isWritableFileAtPath:path 测试文件是否存在,并且是否能执行写操作

-(NSDictionary*)attributesOfItemAtPath:path error:err 获取文件的属性

属性字典允许你指定要创建的文件的权限,如果将该参数指定为nil,该文件会被设置为默认权限。

1、通过一段程序来对文件进行操作:

//
//  main.m
//  NSFileManager_01
//
//  Created by swinglife on 13-11-10.
//  Copyright (c) 2013年 swinglife. All rights reserved.
//#import <Foundation/Foundation.h>int main(int argc, const char * argv[])
{@autoreleasepool {//文件名NSString *fileName = @"testFile";NSString *fileContent = @"这是文件内容!!!!";NSData *fileData = [fileContent dataUsingEncoding:NSUTF8StringEncoding];//创建NSFileManager实例NSFileManager *fm = [NSFileManager defaultManager];//创建文件[fm createFileAtPath:fileName contents:fileData attributes:nil];//判断文件是否存在 不存在就结束程序if([fm fileExistsAtPath:fileName]==NO){NSLog(@"文件不存在");return 1;}//拷贝文件if([fm copyItemAtPath:fileName toPath:@"newFile" error:NULL]==NO){NSLog(@"复制失败");return 2;}//测试两个文件是否相同if([fm contentsEqualAtPath:fileName andPath:@"newFile"]==NO){NSLog(@"文件不相同");return 3;}//重命名newFile[fm moveItemAtPath:@"newFile" toPath:@"newFile2" error:NULL];//获取newFile2的大小NSDictionary *fileAttr = [fm attributesOfItemAtPath:@"newFile2" error:NULL];if(fileAttr!=nil){NSLog(@"文件大小:%llu bytes",[[fileAttr objectForKey:NSFileSize] unsignedLongLongValue]);}//删除文件[fm removeItemAtPath:fileName error:NULL];//显示newFile2的内容NSString *data = [NSString stringWithContentsOfFile:@"newFile2" encoding:NSUTF8StringEncoding error:NULL];NSLog(@"%@",data);}return 0;
}

NSFileManager常用的目录方法

-(NSString*)currentDirectoryPath 获取当前目录

-(BOOL)changeCurrentDirectoryPath:path 更改当前目录

-(BOOL)copyItemAtPath:from toPath:to error:err 复制目录结构

-(BOOL)createDirectoryAtPath:path withIntermediateDirectories:(BOOL)flag attributes:attr 创建一个新目录

-(BOOL)fileExistsAtPath:path isDirectory:(BOOL*)flag 测试文件是不是目录(flag中存储结果)

-(NSArray*)contentsOfDirectoryAtPath:path error:err 列出目录内容

-(NSDirectoryEnumerator*)enumeratorAtPath:path 枚举目录的内容

-(BOOL)removeItemAtPath:path error:err 删除空目录

-(BOOL)moveItemAtPath:from toPath:to error:err 重命名或移动一个目录

2、通过一段程序来对目录进行操作:

//
//  main.m
//  NSFileManager_02
//
//  Created by swinglife on 13-11-10.
//  Copyright (c) 2013年 swinglife. All rights reserved.
//#import <Foundation/Foundation.h>int main(int argc, const char * argv[])
{@autoreleasepool {//文件目录NSString *dirName = @"testDir";//创建NSFileManager实例NSFileManager *fm = [NSFileManager defaultManager];//获取当前目录NSString *path = [fm currentDirectoryPath];NSLog(@"Path:%@",path);//创建新目录[fm createDirectoryAtPath:dirName withIntermediateDirectories:YES attributes:nil error:NULL];//重命名新的目录[fm moveItemAtPath:dirName toPath:@"newDir" error:NULL];//更改当前目录到新的目录[fm changeCurrentDirectoryPath:@"newDir"];//获取当前工作目录path = [fm currentDirectoryPath];NSLog(@"Path:%@",path);}return 0;
}

Objective-C文件和目录操作,IOS文件操作,NSFileManager使用文件操作相关推荐

  1. IOS中获取各个文件的目录路径的方法和NSFileManager类

    转自:http://blog.sina.com.cn/s/blog_5fb39f910101di92.html IOS中获取各种文件的目录路径的方法 iphone沙箱模型的有四个文件夹,分别是什么,永 ...

  2. 没有那个文件或目录 误无法以读模式打开文件 No such file or directory

    没有那个文件或目录 误无法以读模式打开文件 没有那个文件或目录 误无法以读模式打开文件 No such file or directory 这是由于你编写的shell文件是在Windows系统下所编写 ...

  3. ftp ios 上传文件到服务器上,ios通过ftp上传文件到服务器

    ios通过ftp上传文件到服务器 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. ...

  4. python文件或目录损坏且无法读取_U盘文件或目录损坏且无法读取的修复方法

    U盘是我们常用的数据随身携带的存储方式,在没有弹出U盘的情况下,直接拔出U盘,这类操作很容易造成U盘的损坏,那么U盘文件或目录损坏且无法读取怎么解决呢?下面装机之家小编来分享下U盘文件或目录损坏且无法 ...

  5. python没有那个文件或目录_fatal error: Python.h: 没有那个文件或目录 解决方法

    今天安装scrapy 先说下环境 Ubuntu16.04 系统默认Python 2.7.12 (default, Nov 19 2016, 06:48:10) ,安装过anaconda(很关键,里面有 ...

  6. linux 再文件夹目录下,批量替换文件名、文件内容字符串

    基本使用命令 sed -i 's/<原字符串>/<替换字符串>/g' <文件> grep -rl "<搜索字符串>" find -n ...

  7. python没有那个文件或目录_Python中的“没有这样的文件或目录”

    提供完整路径:var2 = open("C:/Users/Matthew/AppData/Local/Programs/Python/Python37-32/password.txt&quo ...

  8. iOS - 中获取各种文件的目录路径的方法

    转自:https://www.cnblogs.com/zrr-notes/p/5953445.html 我们的app在手机中存放的路径是:/var/mobile/Applications/4434-4 ...

  9. 八. 输入输出(IO)操作6.文件与目录管理

    目录是管理文件的特殊机制,同类文件保存在同一个目录下不仅可以简化文件管理,而且还可以提高工作效率.Java 语言在 java.io 包中定义了一个 File 类专门用来管理磁盘文件和目录. 每个 Fi ...

  10. linux 文件目录操作,Linux系统下文件与目录操作

    与其它操作系统一样,在Linux系统下用户的数据和程序也是以文件的形式保存的.所以在使用Linux的过程中,是经常要对文件与目录进行操作的.现在我们就以一个Window用户的立场来学习一下Linux下 ...

最新文章

  1. BGP的各种属性配置
  2. localStorage使用总结
  3. 转自: http://blog.csdn.net/xiaxiaorui2003/article/details/3838631
  4. 如何提升 CSS 性能的小知识
  5. SQL 存储过程中,将串连的字符串当表用。
  6. Python存储和读取数据
  7. zabbix数据库优化
  8. 人脸检测(四)--CART原理及实现
  9. qt超强精美绘图控件 - QCustomPlot一览
  10. paip.提升用户体验----c++ 源码字体自定义制造总结
  11. MyBatis-Plus——代码自动生成器
  12. 黑苹果系统补丁 MacOS Unlocker for VMware 3.0 下载和解锁安装macOS X 10.14图文教程
  13. 一位 Google 大佬的辞职感言..
  14. 常见DOS命令及开发工具
  15. 2016年总结与2017展望
  16. 输入汉语星期几输出英文c语言程序,c输入1234567,输出英语星期日期
  17. 美化你的Typora
  18. Java+Swing+mysql用户信息管理系统
  19. element-ui中的el-table-column加v-if不生效,表头错乱
  20. VS Code 不止开源

热门文章

  1. 27m3氨基酸发酵反应釜设计
  2. firefox无法使用yslow的解决方案
  3. 管理的最高境界不是完美
  4. 朱 蚌埠机器人餐厅_据说,这是蚌埠人气爆棚10家自助餐厅!你吃过几家?!
  5. 推荐十个精彩的Ubuntu鼠标主题
  6. 解决M1芯片版本安装Sketch问题 M1芯片安装那个Sketch版本?Sketch已完美支持M1芯片安装 支持big sur系统
  7. icon图标网站 自用 免费
  8. linux切换用户并执行命令
  9. 如何学好c语言数据结构编程,如何学好C语言和数据结构,为什么学不好编程?——好文章一网打尽...
  10. windows下“找不到该项目”问题