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. [转载]jquery的extend和fn.extend

    jQuery为开发插件提拱了两个方法,分别是: jQuery.fn.extend(object); jQuery.extend(object); jQuery.extend(object); 为扩展j ...

  2. Cogs 1070. [焦作一中2012] 玻璃球游戏 带权并查集,逆序处理

    题目: http://cojs.tk/cogs/problem/problem.php?pid=1070 1070. [焦作一中2012] 玻璃球游戏 ★   输入文件:marbles.in   输出 ...

  3. 《University Calculus》-chape3-微分法-基本概念、定理

    所谓微分法其实就是我们所熟悉的导数,它是一种无限分割的方法,同积分法一样,它们是处理曲线和曲面的有利工具,也是一门很伟大的自然语言.微分方程就是一种名副其实的描述自然的语言. 同样这里如果取单侧导数, ...

  4. 402. Remove K Digits

    (English version is after the code part) 这个题做起来比看起来容易,然后我也没仔细想,先速度刷完,以后再看有没有改进. 用这个来说: 1 2 4 3 2 2 1 ...

  5. Swift基本语法学习笔记

    Swift与OC的不同点 导入框架的方式 OC使用#import \<UIKit/UIKit.h> Swift使用import UIKit 定义标识符的方式 Swift中定义标识符,必须指 ...

  6. oracle正则截取字符串的函数

    现在有这么一个需求, 数据库中的一个手输的'籍贯'字段,要按一定的规范截取显示在报表上,比如,如果'籍贯'的内容是:'山东省潍坊市昌乐县', 那么报表里要显示为:'山东昌乐', 如果'籍贯'是山东省潍 ...

  7. 通过WriteProcessMemory改写进程的内存

    http://www.cnblogs.com/feiyucq/archive/2009/10/21/1587628.html 以PROCESS_ALL_ACCESS权限打开进程以后既能够使用ReadP ...

  8. HP P2055d激光打印机PCL XL error的解决

    近日,于客户处安装HP P2055d激光打印机(2009年11月份生产的机器),介绍下硬件环境:PC:Dell OptiPlex 360,另有一台富士通DPK 8600E票据打印机,P2055d通过U ...

  9. android 30 下拉列表框:ArrayAdapter和Spinner.

    package com.sxt.day05_04; import android.os.Bundle; import android.app.Activity; import android.cont ...

  10. 如何进去bios设置

    1.BIOS是英文"Basic Input Output System"的缩略语,直译过来后中文名称就是"基本输入输出系统".其实,它是一组固化到计算机内主板上 ...