Objective-C 目录与文件操作


            ============================

        Objective-C    目录与文件操作

          ============================

 

学习目标

  • 掌握NSFileManager类常用的文件管理操作
  • 掌握NSFileHandle类常用的文件数据操作

1.理解部分

 

1.1文件

<1>文件管理类NSFileManager

 

2.对文件进行管理操作

a.遍历查看目录下的文件

【深度遍历】

【浅度遍历】

 

b.创建文件/目录

 

c.拷贝文件/目录

d.移动文件/目录

e.删除文件/目录

 

<2>文件句柄类NSFileHandle

1.对文件进行读写首先需要NSFileHandle打开文件

2.NSFileHandle对文件进行读写都是NSData类型的二进制数据

 

 

 

 

 

2.实践部分

 

2.1 NSFileManager

<1>创建文件管理器单例对象

NSFileManager * fm = [NSFileManager defaultManager];

<2>遍历目录下的内容

//浅度遍历

//仅仅遍历当前文件夹下的第一层子文件夹

/// //contentsOfDirectoryAtPath,指定路径下的第一层子文件夹(文件内容)

- (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error;

//深度遍历(又称为递归便利)

//遍历指定路径下的所有文件夹和文件

//指定路径下的子文件夹下的所有文件

- (NSArray *)subpathsOfDirectoryAtPath:(NSString *)path error:(NSError **)error

<3>创建文件

//创建普通文件

//createFileAtPath,在指定路径下,创建文件

//第二个参数contents,是指在创建文件的同时,附上的文件内容

//第三个参数attributes ,如果写nil, attributes会有系统自动管理

- (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr;

 

//创建目录

//就是在指定路径下创建文件夹

//withIntermediateDirectories,是否创建没有路径

- (BOOL)createDirectoryAtPath:(NSString *)path withIntermediateDirectories:(BOOL)createIntermediates attributes:(NSDictionary *)attributes error:(NSError **)error ;

 

<4>拷贝文件/目录

//copyItemAtPath,在指定路径下拷贝项目(文件夹,也能文件)

//srcPath,原路径

//toPath,目标路径

- (BOOL)copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error ;

 

 

<5>移动文件/目录

//moveItemAtPath,移动指定路径下的文件或目录,到另外一个指定的路径

//剪切的同时,也能修改目录或文件的名字

- (BOOL)moveItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error ;

 

<6>删除文件/目录

//removeItemAtPath 删除指定路径下的文件夹或者文件

- (BOOL)removeItemAtPath:(NSString *)path error:(NSError **)error;

 

 

<7>获取文件属性

// attributesOfItemAtPath 查看指定目录下的文件或者文件夹的属性

- (NSDictionary *)attributesOfItemAtPath:(NSString *)path error:(NSError **)error;

 

<8>判断文件是否存在

- (BOOL)fileExistsAtPath:(NSString *)path;

 

 

2.2 NSFileHandle

 

NSFileHandle 对文件进行操作,读,写,设置文件指针偏移量的操作

2.2.1方法:

<1>打开文件方法

//以只读方式打开

    + (id)fileHandleForReadingAtPath:(NSString *)path;

//以只写方式打开

+ (id)fileHandleForWritingAtPath:(NSString *)path;

//以读写方式打开

+ (id)fileHandleForUpdatingAtPath:(NSString *)path;

 

<2>读指定长度的数据

//readDataOfLength 读取指定长度的字符串

//得知,每个汉字在编译器中占三个字节,英文一个字节

- (NSData *)readDataOfLength:(NSUInteger)length;

 

<3>从当前偏移量读到文件尾

//是将文本中所有的数据一次性读到内存中

- (NSData *)readDataToEndOfFile;

 

<4>设置文件偏移量

//2.txt中的文字abcefg,如果偏移量为2的话,那么就是从c字符往后读

//偏移量的默认值为0

- (void)seekToFileOffset:(unsigned long long)offset;

 

<5>将文件偏移量定位到文件尾

//将指针指向文本的结尾

- (unsigned long long)seekToEndOfFile;

 

<6>写文件

//(NSData *)data,内存数据类型

// NSString *string=@“abc”,[string dataUsingEncoding:NSUTF8StringEncoding]

- (void)writeData:(NSData *)data;

<7>将文件偏移量以后的内容删除,

//(unsigned long long)offset这个参数用于设置文件偏移量

- (void)truncateFileAtOffset:(unsigned long long)offset;

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM