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)的更多相关文章

  1. OC文件操作1

    主要内容: 1)文件操作:对文件本身的操作(NSManager) 2)对文件内容的操作(NSHandle) 1.NSManager 创建一个单例的file manager的对象 //创建一个单例的fi ...

  2. OC文件操作(2)

    NSFileManager 文件管理器完成文件的创建.移动.拷贝等管理操作 1.查询文件和目录  OC中查询路径下的目录主要分为浅度遍历和深度遍历.  浅度遍历  NSFileManager * ma ...

  3. OC文件操作2

    1.对文件本身的操作 NSManager 2.对文件内容的操作 NSHandle 文件句柄 NSFileHandle * fh = [NSFileHandle fileHandleForReading ...

  4. OC文件操作、获取文件属性

    #import <Foundation/Foundation.h> //获取文件的属性 int main(int argc, const char * argv[]) { @autorel ...

  5. 归档NSKeyedArchiver解归档NSKeyedUnarchiver与文件管理类NSFileManager (文件操作)

    ========================== 文件操作 ========================== 一.归档NSKeyedArchiver 1.第一种方式:存储一种数据. // 归档 ...

  6. PHP文件操作系统----主要的文件操作函数

    一.文件操作系统概述 1.概述: php中的文件操作系统主要是对文件和目录的操作.文件在windows系统下分为3种不同:文件.目录.未知,在linux/unix系统下分为7种不同:block.cha ...

  7. 【.NET深呼吸】Zip文件操作(1):创建和读取zip文档

    .net的IO操作支持对zip文件的创建.读写和更新.使用起来也比较简单,.net的一向作风,东西都准备好了,至于如何使用,请看着办. 要对zip文件进行操作,主要用到以下三个类: 1.ZipFile ...

  8. 野路子出身PowerShell 文件操作实用功能

    本文出处:http://www.cnblogs.com/wy123/p/6129498.html 因工作需要,处理一批文件,本想写C#来处理的,后来想想这个是PowerShell的天职,索性就网上各种 ...

  9. Node基础篇(文件操作)

    文件操作 相关模块 Node内核提供了很多与文件操作相关的模块,每个模块都提供了一些最基本的操作API,在NPM中也有社区提供的功能包 fs: 基础的文件操作 API path: 提供和路径相关的操作 ...

随机推荐

  1. HDOJ1021题 Fibonacci Again 应用求模公式

    Problem Description There are another kind of Fibonacci numbers: F(0) = 7, F(1) = 11, F(n) = F(n-1) ...

  2. HDU 3555 Bomb(数位DP)

    Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) Total Subm ...

  3. ANDROID Porting系列一、ANDROID编译系统

    译自:http://source.android.com/porting/build_system.html Android使用一个自定义生成系统生成工具,二进制文件和文档.本文档提供了一个建立And ...

  4. Snake - SGU 128(构造多边形)

    题目大意:有N个点,如果可以使用这N个点连接,连接的时候任意两条边要成直角,任意边都要平行于x轴或者y轴,并且不能出现跨立相交,最终组成一个闭合的多边形,求出来这个多边形的最小长度. 分析:容易证明这 ...

  5. The equation - SGU 106(扩展欧几里得)

    题目大意:有一个二元一次方程,给出系数值和x与y的取值范围,求出来总共有多少对整数解. 分析:有以下几点情况. 1,系数a=0, b=0, 当c != 0的时候结果很明显是无解,当c=0的时候x,y可 ...

  6. Intersection - POJ 1410(线段与矩形是否相交)

    题目大意:给一个线段和一个矩形,判断线段是否和矩形有公共点.   分析:用矩形的四个边当线段判断与所给的线段是否有交点,需要注意的是给的矩形是不标准的,需要自己转换,还需要注意线段有可能在矩形内部. ...

  7. 003-python列表

    Python 列表(list) 列表是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. 列表的基本操作: 索引 切片 追 ...

  8. Hibernate自定查询返回list<?>

    /** * * @param session * :一个会话 * * @param hql * :是需要执行的hql语句, * * @param offset * 设置开始位置 * * @param ...

  9. android_小总结_方法过时的兼容处理

    随着android系统的升级,有些过时的方法已经不再使用,但是又要兼容老的版本,所以这个时候可以使用反射来处理下 举个列子pull_to_refresh 中有个方法找不到==initializeScr ...

  10. JavaCodeTra 猴子选猴王 约瑟夫循环

    之前用的是循环链表,java刚学,不知道怎么用链表.用个小算法吧 代码: import java.util.Scanner; /** * */ /** * @author john * @约瑟夫循环/ ...