OBjective-C:文件管理类NSFileManager
文件管理类NSFileManager类:对文件进行创建、复制、重命名、删除等,一般不对文件内容进行操作。
NSData类和NSMutableData类:相当于数据缓冲区
方法 | 描述 |
---|---|
-(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 *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
OBjective-C:文件管理类NSFileManager相关推荐
- Linux系统下的文件管理类常命令及使用方式
Linux上的文件管理类命令有哪些,常用的使用方式 文件系统操作命令分为:目录操作命令.文件操作命令.权限操作命令 目录操作命令: ls 列出目录的属性信息 pwd 列出用户当前所处目录路径 du 列 ...
- 文件管理(NSfilemanager)
一.文件管理 NSFileManager中包含了用来查询单词库目录.创建.重命名.删除目录以及获取/设置文件属性的方法(可读性,可编写性等等). - ( ...
- IOS基础之Foundation框架常用类NSFileManager,DSDate,CGPoint,CGSize,copy,单例
IOS基础之Foundation框架常用类NSFileManager,DSDate,CGPoint,CGSize,copy,单例 1.01_FileManager学习 // // main.m // ...
- 第二周 Linux文件管理类命令及bash基本特性
第二周 Linux文件管理类命令及bash基本特性 摘要 1.描述Linux上的文件管理类命令并详解. 2.描述Bash的工作特性. 3.描述文件的元数据信息详解. 4.描述命令别名的使用. 5.详解 ...
- 文件管理类 第一期 | 整洁,从桌面开始
文章目录 前言 一.主要内容介绍 二.文件分类,整理你的桌面 1.网格对齐图标,取消自动排列 2.保持工作状态,提取近期文件 3.用好排序,让文件一目了然 4.分类整理,让文件听你的话 5.按照实际情 ...
- Linux基础7 文件管理类命令
linux文件命名规则:1.长度不能超过255各字符.2.文件名不能含有/.3.严格区分大小写. 字符编码标准:GB18030(大),GBK(中),GB2312(小),UTF-8(全球编码) 文本处理 ...
- [Objective C] 获取类和对象的运行时状态
1. -(BOOL) isKindOfClass: <class> 判断该对象是否为<class>类或其子类的实例 2. -(BOOL) isMemberOfClass: &l ...
- [鸟哥linux视频教程整理]03_01_Linux文件管理类命令详解续3
一.查看文本: cat:连接并显示 tac:反向显示文本内容 -n:显示行号 -E:显示每一行的行结束符 注:对于Linux系统而言,所有的文本文件的每一行的行结束符是$.windows系统的结束符 ...
- Linux用管道移动文件夹,常用的Linux上的文件管理类命令讲解及演示
01. 查看目录内容 1.1 终端实用技巧 1> 自动补全在敲出 文件/目录/命令 的前几个字母之后,按下 tab 键 如果输入的没有歧义,系统会自动补全 如果还存在其他 文件/目录/命令,再按 ...
最新文章
- PHP遍历用blade标签表示,php-Laravel Blade {{$variable或’Default Text’}}无法使用网址
- Populating Next Right Pointers in Each Node II
- Oracle教程之查询出每个雇员姓名的长度范例
- Linux 网络诊断命令
- 关于计算机和人物的英语短文,人脑和电脑英语作文
- phplivechat安卓app下载_掌音教师端下载软件-掌音教师版app下载v1.5.1 安卓官方版...
- 使用PL/SQL Developer给Oracle生成漂亮的数据库说明文档
- 远程服务器存储之JSON
- 用Python爬取3万多条评论,看韩国人如何评价电影《寄生虫》?
- 仿射解密c语言程序实验报告,仿射加密解密 - 依姆哣特的个人空间 - OSCHINA - 中文开源技术交流社区...
- 光敏电阻控制led亮度程序_Arduino动手做(2)光敏电阻模块
- 4.Linux/Unix 系统编程手册(上) -- 文件IO:通用的IO模型
- 关于 Java 的强制类型转换
- 构建高质量的前端工程完全指南
- WPF介绍和一些基础操作
- 光环PMP:超凡IT经理人的“六重修炼”专题讲座
- 炫酷文字消失动画网站404页面源码
- 计算机控制电子点火系控制电路分析,点火示波器的工作原理 用示波器诊断点火系故障方法...
- 新元宇宙每周连载《地球人奇游天球记》第十八回冥王遇鬼
- 机器学习:PageRank
热门文章
- Android Studio 三种添加插件的方式,androidstudio
- tomcat配备禁止url显示jsessionid
- Android改变移动网络ip地址,Android之获取移动网络ip
- python线性表和队列_[笔记]python数据结构之线性表:linkedlist链表,stack栈,queue队列...
- iOS 性能优化-启动优化、main函数之前优化-二进制重排
- static,extern关键字作用?
- jvm类加载过程_JVM知识点——深入理解JVM的类加载
- BeagleBone Black快速入门教程
- Java数字包装类基本程序,Java基本数据类型包装类
- unity 打开指定文件夹_unity 打开指定路径文件夹