OC文件操作(1)
1.文件的浅度遍历与深度遍历:
//NSFileManager * fm = [[NSFileManager alloc]init];//创建文件管理器
//第一步创建一个文件管理器
NSError * error= nil;
//显示路径下的内容,作用类似于ls -a指令
//返回值是把目录下的内容放到NSArray中
//浅度遍历
NSFileManager * fm = [NSFileManager defaultManager];
NSArray * array = [fm contentsOfDirectoryAtPath:@"/Users/aaaaa/Desktop"
error:&error];
//成功返回nil错误返回失败信息
if(error)
{
NSLog(@"Error=%@",error);
return -;//代表函数返回(结束函数)
//exit(1);//结束当前进程
}
else
{
NSLog(@"array=%@",array);
} //深度遍历
//可以显示子目录的内容
NSArray * array1 = [fm subpathsOfDirectoryAtPath:@"/Users/aaaaa/Desktop"
error:&error];
if(error)
{
NSLog(@"Error=%@",error);
}
else
{
NSLog(@"array1=%@",array1);
}
2.创建目录:
NSFileManager * fm = [NSFileManager defaultManager];
NSError * error = nil;
//当前路径指的是可执行程序的路径而不是代码的路径
//创建目录 返回值:创建成功返回YES 失败返回NO
BOOL ret = [fm createDirectoryAtPath:@"./hello2/world" //创建目录的路径
withIntermediateDirectories:YES//路径不存在是否创建目录 YES代表创建(会把不存在的目录也创建) NO代表不创建
attributes:nil //文件属性(权限),通常写nil代表默认权限
error:&error];
if(ret)
{
NSLog(@"success!");
}
else
{
NSLog(@"error = %@",error);
}
创建文件
NSFileManager * fm = [NSFileManager defaultManager];
//创建文件
BOOL ret = [fm createFileAtPath:@"./1.txt" //路径以及文件名
contents:nil //要创建的文件的内容 nil代表空文件 若文件以及存在会覆盖该文件
attributes:nil];
[fm fileExistsAtPath:@"./1.txt"]//判断文件时候存在
3.拷贝文件/目录:
NSFileManager * fm = [NSFileManager defaultManager];
NSError * error = nil;
//拷贝文件/目录
//第二个参数必须要写全文件或者目录名字
BOOL ret = [fm copyItemAtPath:@"/Users/aaaaa/Desktop/string.c"//要复制的文件的路径
toPath:@"./1.txt" //目的文件(文件名不要加空格)若以及存在会返回error
error:&error];
4.移动(重命名)文件/目录:
//重命名(移动)文件或目录
//重命名:就是修改文件路径
//如果文件/目录存在 移动失败
ret = [fm moveItemAtPath:@"/Users/aaaaa/Desktop/"
toPath:@"./1/1" //参数要写全称
error:&error];
5.删除文件/目录:
/删除文件/目录
//谨慎使用(会直接删除 不会丢到废纸篓中)
ret = [fm removeItemAtPath:@"./1.txt"
error:&error];
6.NSData与字符串:
NSString * str = @"hello world";
//将OC字符串转换成NSData类型
//NSData 文件缓冲区
NSData * data = [str dataUsingEncoding:NSUTF8StringEncoding]; //将NSData类型转换成NSString类型
NSString * str2 = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
7.文件读写操作:
//文件读写操作
//第一步打开文件
//FILE * fp = fopen("./1.txt","w");文件指针
//文件句柄
//以只读方式打开
NSFileHandle * fh = [NSFileHandle fileHandleForReadingAtPath:@"/Users/aaaaa/Desktop/string.c"]; //以只写方式打开
fh = [NSFileHandle fileHandleForWritingAtPath:@"/Users/aaaaa/Desktop/string.c"];
//以读写方式打开
fh = [NSFileHandle fileHandleForUpdatingAtPath:@"/Users/aaaaa/Desktop/string.c"]; //OC的打开函数都会把偏移量定位在未见首
//若想在文件尾进行操作,可将文件偏移量定位到文件尾
[fh seekToEndOfFile];//定位到文件尾 NSData * data1 = [fh readDataOfLength:];//读取指定个数字节
NSData * data2 = [fh readDataToEndOfFile];//从当前偏移量读到文件尾
[fh seekToFileOffset:];//把文件偏移量定位到10字节
8.向文件中写数据:
NSFileHandle * fh2 = [NSFileHandle fileHandleForUpdatingAtPath:@"./1.txt"];
NSString * str = @"hello world";
NSData * data = [str dataUsingEncoding:NSUTF8StringEncoding];
//写数据必须要转化为NSData
[fh2 writeData:data];
9.获取文件长度:
//通过文件管理器获取文件属性然后通过字典获取文件长度
NSFileManager * fm = [NSFileManager defaultManager];
NSDictionary * dict = [fm attributesOfItemAtPath:@"/Users/aaaaa/Desktop/string.c" error:&error];
//方法一:
NSLog(@"size = %lld",[dict fileSize]);
//方法二:
NSLog(@"%@",[dict objectForKey:NSFileSize]);
OC文件操作(1)的更多相关文章
- OC文件操作1
主要内容: 1)文件操作:对文件本身的操作(NSManager) 2)对文件内容的操作(NSHandle) 1.NSManager 创建一个单例的file manager的对象 //创建一个单例的fi ...
- OC文件操作(2)
NSFileManager 文件管理器完成文件的创建.移动.拷贝等管理操作 1.查询文件和目录 OC中查询路径下的目录主要分为浅度遍历和深度遍历. 浅度遍历 NSFileManager * ma ...
- OC文件操作2
1.对文件本身的操作 NSManager 2.对文件内容的操作 NSHandle 文件句柄 NSFileHandle * fh = [NSFileHandle fileHandleForReading ...
- OC文件操作、获取文件属性
#import <Foundation/Foundation.h> //获取文件的属性 int main(int argc, const char * argv[]) { @autorel ...
- 归档NSKeyedArchiver解归档NSKeyedUnarchiver与文件管理类NSFileManager (文件操作)
========================== 文件操作 ========================== 一.归档NSKeyedArchiver 1.第一种方式:存储一种数据. // 归档 ...
- PHP文件操作系统----主要的文件操作函数
一.文件操作系统概述 1.概述: php中的文件操作系统主要是对文件和目录的操作.文件在windows系统下分为3种不同:文件.目录.未知,在linux/unix系统下分为7种不同:block.cha ...
- 【.NET深呼吸】Zip文件操作(1):创建和读取zip文档
.net的IO操作支持对zip文件的创建.读写和更新.使用起来也比较简单,.net的一向作风,东西都准备好了,至于如何使用,请看着办. 要对zip文件进行操作,主要用到以下三个类: 1.ZipFile ...
- 野路子出身PowerShell 文件操作实用功能
本文出处:http://www.cnblogs.com/wy123/p/6129498.html 因工作需要,处理一批文件,本想写C#来处理的,后来想想这个是PowerShell的天职,索性就网上各种 ...
- Node基础篇(文件操作)
文件操作 相关模块 Node内核提供了很多与文件操作相关的模块,每个模块都提供了一些最基本的操作API,在NPM中也有社区提供的功能包 fs: 基础的文件操作 API path: 提供和路径相关的操作 ...
随机推荐
- HDOJ/HDU 2547 无剑无我(两点间的距离)
Problem Description 北宋末年,奸臣当道,宦官掌权,外侮日亟,辽军再犯.时下战火连连,烽烟四起,哀鸿遍野,民不聊生,又有众多能人异士群起而反,天下志士云集响应,景粮影从. 值此危急存 ...
- bzoj 2463 [中山市选2009]谁能赢呢?(博弈)
2463: [中山市选2009]谁能赢呢? Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1290 Solved: 944[Submit][Stat ...
- ACM3787
/* 问题说明 给定两个整数A和B,其表示形式是:从个位开始, 每三位数用逗号","隔开. 现在请计算A+B的结果,并以正常形式输出. 输入 输入包含多组数据数据,每组数据占一行, ...
- iptables 问题
- 408. Valid Word Abbreviation
感冒之后 睡了2天觉 现在痊愈了 重启刷题进程.. Google的题,E难度.. 比较的方法很多,应该是为后面的题铺垫的. 题不难,做对不容易,edge cases很多,修修改改好多次,写完发现是一坨 ...
- cmd的copy命令合并多个文件
1.1个a.jpg文件:1个b.php文件(一句话木马)
- Python中逗号作用的实例分析
逗号在类型转化中的使用 主要是元组的转换 例如: >>> a=11>>> b=(a)>>> b11>>> b=(a,)>& ...
- python处理xml的常用包(lib.xml、ElementTree、lxml)
python处理xml的三种常见机制 dom(随机访问机制) sax(Simple APIs for XML,事件驱动机制) etree python处理xml的三种包 标准库中的xml Fredri ...
- DataGridView 列大写、列只能输入数字 分类: DataGridView 2014-12-07 08:40 332人阅读 评论(0) 收藏
列大写: 说明:调用EditingControlShowing事件 private void dgvGoods_EditingControlShowing(object sender, DataGri ...
- CSS3弹性盒模型之Flexbox是布局模块box-sizing & box-orient & box-direction & box-ordinal-group
css3 box-sizing属性 box-sizing属性可以为三个值之一:content-box(default),border-box,padding-box. content-box,bord ...