Object-C文件操作
2016-02-26 20:05
309 查看
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 -1;//代表函数返回(结束函数)
//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.创建目录
3.创建文件
4.拷贝文件/目录
5.移动(重命名)文件/目录
6.删除文件/目录
7.NSData与字符串
8.文件读写操作
9.向文件中写数据
10.获取文件长度
.OC的数组成员是任意的对象指针 与C中的链表结构类似(以nil结尾) 一切的数组操作不能越界
//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 -1;//代表函数返回(结束函数)
//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"]//判断文件时候存在 |
//重命名(移动)文件或目录 //重命名:就是修改文件路径 //如果文件/目录存在 移动失败 ret = [fm moveItemAtPath:@"/Users/aaaaa/Desktop/" toPath:@"./1/1" //参数要写全称 error:&error]; |
1 2 3 4 5 6 | //重命名(移动)文件或目录 //重命名:就是修改文件路径 //如果文件/目录存在 移动失败 ret = [fm moveItemAtPath:@"/Users/aaaaa/Desktop/" toPath:@"./1/1" //参数要写全称 error:&error]; |
//删除文件/目录 //谨慎使用(会直接删除 不会丢到废纸篓中) ret = [fm removeItemAtPath:@"./1.txt" error:&error]; |
NSString * str = @"hello world"; //将OC字符串转换成NSData类型 //NSData 文件缓冲区 NSData * data = [str dataUsingEncoding:NSUTF8StringEncoding]; //将NSData类型转换成NSString类型 NSString * str2 = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]; |
//文件读写操作 //第一步打开文件 //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:10];//读取指定个数字节 NSData * data2 = [fh readDataToEndOfFile];//从当前偏移量读到文件尾 [fh seekToFileOffset:10];//把文件偏移量定位到10字节 |
NSFileHandle * fh2 = [NSFileHandle fileHandleForUpdatingAtPath:@"./1.txt"]; NSString * str = @"hello world"; NSData * data = [str dataUsingEncoding:NSUTF8StringEncoding]; //写数据必须要转化为NSData [fh2 writeData:data]; |
//通过文件管理器获取文件属性然后通过字典获取文件长度 NSFileManager * fm = [NSFileManager defaultManager]; NSDictionary * dict = [fm attributesOfItemAtPath:@"/Users/aaaaa/Desktop/string.c" error:&error]; //方法一: NSLog(@"size = %lld",[dict fileSize]); //方法二: NSLog(@"%@",[dict objectForKey:NSFileSize]); |
相关文章推荐
- Objective-C继承
- Objective-C页面跳转方法总结
- 表单serializeObject问题
- 对Objective-C中runtime的理解
- fastjson包JSONObject.toJSON导致pojo对象部分属性丢失问题
- 浅析selenium的page object模式
- JDK1.6聚合框架bug:c.toArray might (incorrectly) not return Object[] (see 6260652)
- com.jacob.com.ComFailException: Can't co-create object解决办法
- WaitForSingleObject以及WaitForMultipleObjects 函数
- 《从零开始学Swift》学习笔记(Day 70)——Swift与Objective-C混合编程之Swift与Objective-C API映射
- Line: 209 - com/opensymphony/xwork2/spring/SpringObjectFactory.java:209:-1
- '-[__NSCFArray insertObject:atIndex:]: mutating method sent to immutable object'
- 使用ObjectAnimator开发打开、关闭书本动画
- Objective-C Runtime的数据类型
- buffer object,render buffer,framebuffer
- 自动释放池详解
- object.observe数据绑定
- C#面向对象(Object-Oriented Programming)
- 《从零开始学Swift》学习笔记(Day 70)——Swift与Objective-C混合编程之Swift与Objective-C API映射
- Mybatis配置报错元素类型为 "configuration" 的内容必须匹配 "(properties?,settings?,typeAliases?,typeHandlers?,objectFa