文件管理类NSFileManager类:对文件进行创建、复制、重命名、删除等,一般不对文件内容进行操作。

NSData类和NSMutableData类:相当于数据缓冲区

 NSFileManager是一个单例类,可以通过defalutManager类方法创建
 + (NSFileManager *)defaultManager;//通过这个方法创建的对象始终是同一个
 一些文件操作的概念:
 -当前目录:.
-上级目录:..
-根目录:/
-home目录:~
-绝对路径:从根目录开始的路经
-相对路径:从当前目录开始的路径
方法 描述
-(NSData ) contentsAtPath: *path 从一个文件读取数据
-(BOOL) 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 获取文件的属性
-(BOOL) setAttributesOfItemAtPath: attr error: err 更改文件的属性
—————-目录—————- —————目录—————-
-(NSString *) currentDirectoryPath 获取当前目录
-(BOOL) changeCurrentDirectoryPath: path 更改当前目录
-(BOOL) copyItemAtPath: from toPath: to error: err 复制目录结构(to不能是已存在的)
-(BOOL) createDirectoryAtPath: path withIntermediateDirectories: (BOOL) flag attributes: attr 创建一个新目录
-(NSArray ) contentsOfDirectoryAtPath: *path error: err 列出目录内容
-(NSDirectoryEnumerator ) enumeratorAtPath: *path 枚举目录的内容
-(BOOL) removeItemAtPath: path error: err 删除空目录
-(BOOL) moveItemAtPath: from toPath: to error: err 重命名或移动一个目录(to不能是已存在的)
      1、 创建NSFileManager对象,其实都是同一个对象
1         NSFileManager *fm = [NSFileManager defaultManager];
2         NSFileManager *fm2 = [NSFileManager defaultManager];
3
4         NSLog(@"%@,%@",fm,fm2);    

2015-08-24 20:28:23.744 01-NSFlleManager[861:32223] <NSFileManager: 0x100306940>,<NSFileManager: 0x100306940>

2、获取当前路径

1 NSString *currentPath = [fm currentDirectoryPath];
2  NSLog(@"当前目录:%@0",currentPath);

2015-08-24 20:29:15.624 01-NSFlleManager[869:32586] 当前目录:/Users/mac/Library/Developer/Xcode/DerivedData/01-NSFlleManager-bjtgjiggpfdimgemqrewbfyjlwwu/Build/Products/Debug0
Program ended with exit code: 0

3、改变当前路径

1 [fm changeCurrentDirectoryPath:@".."];
2 currentPath = [fm currentDirectoryPath];
3 NSLog(@"当前目录:%@0",currentPath);

2015-08-24 20:30:54.837 01-NSFlleManager[878:33188] 当前目录:/Users/mac/Library/Developer/Xcode/DerivedData/01-NSFlleManager-bjtgjiggpfdimgemqrewbfyjlwwu/Build/Products0
Program ended with exit code: 0

4.创建目录

 1         NSError *error;
 2         [fm createDirectoryAtPath:@"temp" withIntermediateDirectories:YES attributes:nil error:&error];
 3         if(error)
 4         {
 5             NSLog(@"创建目录错误:%@",error);
 6         }
 7         else
 8         {
 9             NSLog(@"创建成功");
10         }
11
12         [fm changeCurrentDirectoryPath:@"temp"];
13         currentPath = [fm currentDirectoryPath];
14         NSLog(@"当前目录:%@0",currentPath);

2015-08-24 20:32:48.230 01-NSFlleManager[886:33837] 创建成功
2015-08-24 20:32:48.230 01-NSFlleManager[886:33837] 当前目录:/Users/mac/Library/Developer/Xcode/DerivedData/01-NSFlleManager-bjtgjiggpfdimgemqrewbfyjlwwu/Build/Products/temp0
Program ended with exit code: 0

5.复制文件(目录)

1 [fm copyItemAtPath:@"../Debug/01-NSFlleManager" toPath:@"./02-NSFlleManager" error:&error];
2         if(error)
3         {
4             NSLog(@"复制文件失败:%@",error);
5         }
6         else
7         {
8             NSLog(@"复制文件成功");
9         }

6.移动文件(目录),在同一个目录下改名操作

1         [fm moveItemAtPath:@"02-NSFlleManager" toPath:@"03-NSFlleManager" error:&error];
2         if(error)
3         {
4             NSLog(@"文件移动失败:%@",error);
5         }
6         else
7         {
8             NSLog(@"文件移动成功");
9         }

7.删除文件(目录)

 1          error = nil;
 2         [fm removeItemAtPath:@"../01-NSFlleManager" error:&error];
 3         if(error)
 4         {
 5             NSLog(@"文件删除失败:%@",error);
 6         }
 7         else
 8         {
 9             NSLog(@"文件删除成功");
10         }    

8.枚举目录内容
8.1 递归输出所有目录的内容

1         NSDirectoryEnumerator *dirEnumerator = [fm enumeratorAtPath:@"/Users/mac/IOS/OC"];
2         NSString *path;
3         while(path = [dirEnumerator nextObject])
4         {
5             NSLog(@"%@",path);
6         }

8.2 .只输出当前目录的内容

1         NSArray *files = [fm contentsOfDirectoryAtPath:@"/Users/mac/IOS/OC" error:&error];
2         NSLog(@"%@",files);

9.列出目录(文件)的属性

1         NSDictionary *attr = [fm attributesOfItemAtPath:@"/Users/mac/IOS/OC" error:&error];
2         NSLog(@"%@",attr);

2015-08-24 20:40:56.755 01-NSFlleManager[912:36354] {NSFileCreationDate = "2015-08-10 01:39:40 +0000";NSFileExtensionHidden = 0;NSFileGroupOwnerAccountID = 20;NSFileGroupOwnerAccountName = staff;NSFileModificationDate = "2015-08-24 01:22:42 +0000";NSFileOwnerAccountID = 501;NSFileOwnerAccountName = mac;NSFilePosixPermissions = 493;NSFileReferenceCount = 13;NSFileSize = 442;NSFileSystemFileNumber = 1685728;NSFileSystemNumber = 16777218;NSFileType = NSFileTypeDirectory;
}
Program ended with exit code: 0

10.创建文件

 1         NSString *str = @"this is a test";
 2         NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
 3         if([fm createFileAtPath:@"1.txt" contents:data attributes:nil])
 4         {
 5             NSLog(@"创建文件成功");
 6         }
 7         else
 8         {
 9             NSLog(@"创建文件失败");
10         }

11.判断文件是否存在

1         if([fm fileExistsAtPath:@"1.txt" isDirectory:NULL])
2         {
3             NSLog(@"文件存在");
4         }
5         else
6         {
7             NSLog(@"文件不存在");
8         }

12.读取文件内容

1         NSData *data2 = [fm contentsAtPath:@"1.txt"];
2         NSLog(@"%ld",[data2 length]);
3         NSString *str2 = [[NSString alloc]initWithData:data2 encoding:NSUTF8StringEncoding];
4         NSLog(@"%@",str2);

2015-08-24 20:44:33.660 01-NSFlleManager[920:37495] this is a test
Program ended with exit code: 0

程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!
本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/4755793.html,如需转载请自行联系原作者

OBjective-C:文件管理类NSFileManager相关推荐

  1. Linux系统下的文件管理类常命令及使用方式

    Linux上的文件管理类命令有哪些,常用的使用方式 文件系统操作命令分为:目录操作命令.文件操作命令.权限操作命令 目录操作命令: ls 列出目录的属性信息 pwd 列出用户当前所处目录路径 du 列 ...

  2. 文件管理(NSfilemanager)

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

  3. IOS基础之Foundation框架常用类NSFileManager,DSDate,CGPoint,CGSize,copy,单例

    IOS基础之Foundation框架常用类NSFileManager,DSDate,CGPoint,CGSize,copy,单例 1.01_FileManager学习 // // main.m // ...

  4. 第二周 Linux文件管理类命令及bash基本特性

    第二周 Linux文件管理类命令及bash基本特性 摘要 1.描述Linux上的文件管理类命令并详解. 2.描述Bash的工作特性. 3.描述文件的元数据信息详解. 4.描述命令别名的使用. 5.详解 ...

  5. 文件管理类 第一期 | 整洁,从桌面开始

    文章目录 前言 一.主要内容介绍 二.文件分类,整理你的桌面 1.网格对齐图标,取消自动排列 2.保持工作状态,提取近期文件 3.用好排序,让文件一目了然 4.分类整理,让文件听你的话 5.按照实际情 ...

  6. Linux基础7 文件管理类命令

    linux文件命名规则:1.长度不能超过255各字符.2.文件名不能含有/.3.严格区分大小写. 字符编码标准:GB18030(大),GBK(中),GB2312(小),UTF-8(全球编码) 文本处理 ...

  7. [Objective C] 获取类和对象的运行时状态

    1. -(BOOL) isKindOfClass: <class> 判断该对象是否为<class>类或其子类的实例 2. -(BOOL) isMemberOfClass: &l ...

  8. [鸟哥linux视频教程整理]03_01_Linux文件管理类命令详解续3

    一.查看文本: cat:连接并显示  tac:反向显示文本内容 -n:显示行号 -E:显示每一行的行结束符 注:对于Linux系统而言,所有的文本文件的每一行的行结束符是$.windows系统的结束符 ...

  9. Linux用管道移动文件夹,常用的Linux上的文件管理类命令讲解及演示

    01. 查看目录内容 1.1 终端实用技巧 1> 自动补全在敲出 文件/目录/命令 的前几个字母之后,按下 tab 键 如果输入的没有歧义,系统会自动补全 如果还存在其他 文件/目录/命令,再按 ...

最新文章

  1. PHP遍历用blade标签表示,php-Laravel Blade {{$variable或’Default Text’}}无法使用网址
  2. Populating Next Right Pointers in Each Node II
  3. Oracle教程之查询出每个雇员姓名的长度范例
  4. Linux 网络诊断命令
  5. 关于计算机和人物的英语短文,人脑和电脑英语作文
  6. phplivechat安卓app下载_掌音教师端下载软件-掌音教师版app下载v1.5.1 安卓官方版...
  7. 使用PL/SQL Developer给Oracle生成漂亮的数据库说明文档
  8. 远程服务器存储之JSON
  9. 用Python爬取3万多条评论,看韩国人如何评价电影《寄生虫》?
  10. 仿射解密c语言程序实验报告,仿射加密解密 - 依姆哣特的个人空间 - OSCHINA - 中文开源技术交流社区...
  11. 光敏电阻控制led亮度程序_Arduino动手做(2)光敏电阻模块
  12. 4.Linux/Unix 系统编程手册(上) -- 文件IO:通用的IO模型
  13. 关于 Java 的强制类型转换
  14. 构建高质量的前端工程完全指南
  15. WPF介绍和一些基础操作
  16. 光环PMP:超凡IT经理人的“六重修炼”专题讲座
  17. 炫酷文字消失动画网站404页面源码
  18. 计算机控制电子点火系控制电路分析,点火示波器的工作原理 用示波器诊断点火系故障方法...
  19. 新元宇宙每周连载《地球人奇游天球记》第十八回冥王遇鬼
  20. 机器学习:PageRank

热门文章

  1. Android Studio 三种添加插件的方式,androidstudio
  2. tomcat配备禁止url显示jsessionid
  3. Android改变移动网络ip地址,Android之获取移动网络ip
  4. python线性表和队列_[笔记]python数据结构之线性表:linkedlist链表,stack栈,queue队列...
  5. iOS 性能优化-启动优化、main函数之前优化-二进制重排
  6. static,extern关键字作用?
  7. jvm类加载过程_JVM知识点——深入理解JVM的类加载
  8. BeagleBone Black快速入门教程
  9. Java数字包装类基本程序,Java基本数据类型包装类
  10. unity 打开指定文件夹_unity 打开指定路径文件夹