首页 > 代码库 > OC文件操作(1)

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 -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 失败返回NOBOOL 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 =http://www.mamicode.com/ [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:10];//读取指定个数字节NSData * data2 = [fh readDataToEndOfFile];//从当前偏移量读到文件尾[fh seekToFileOffset:10];//把文件偏移量定位到10字节

8.向文件中写数据:

NSFileHandle * fh2 = [NSFileHandle fileHandleForUpdatingAtPath:@"./1.txt"];NSString * str = @"hello world";NSData * data =http://www.mamicode.com/ [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)