概述:
NSFileManager代表文件管理器;开发者通过NSFileManager执行移动、复制、链接、删除文件或者目录时,程序可以为NSFileManager提供一个配套的事件委托(实现了NSFileManagerDelegate协议的对象),该委托对象用于确保移动、复制、链接、删除操作的完成,并提供处理失败情况的处理方法;
NSFileManager采用文件名作为文件的唯一标识,它可以是相对路径也可以是绝对路径,对于OSX系统,它的识别方式如下:
- 相对路径:不以斜线开头的路径都是相对路径,比如 file.h代表当前路径下的file.h文件,再比如,fileDemo/file.m代表当前路径下fileDemo目录下的file.m文件
- 绝对路径:以斜线开头的路径,斜线代表根目录;
- ~:代表当前用户的Home目录
- . :代表当前目录;
.. :代表当前目录的上层目录;
可以使用NSFileManager方法的defaultManager类方法来获取系统默认的NSFileManager,获取以后就可以调用NSFileManager的方法来操作文件;
访问文件的属性、内容
提供的方法:
- fileExistsAtPath: 判断文件名是否合法;
- fileExistsAtPath:isDirectory: 判断该指定文件名对应的文件或者目录是否存在,该方法的第二个参数可用于返回该文件名是否是目录;
- isReadableFileAtPath: 判断指定目录下的文件是否可读;
- isWritableFileAtPath: 判断指定目录下的文件是否可写;
- isExecutableFileAtPath: 判定指定目录下的文件是否可以执行;
- isDeletableFileAtPath: 判断指定目录下的文件是否可以删除;
- componentsToDisplayForPath: 获取指定文件名对应文件的各个路径组件;
- displayNameAtPath: 获取指定文件名对应文件的简单文件名;
- attributesOfItemAtPath:error: 获取指定文件名对应文件的属性
- attributesOfFileSystemForPath:error: 获取指定文件名对应的文件所在的文件系统的属性;
- contentsAtPath: 获取指定文件名对应文件的内容;
- contentsEqualAtPath:andPath: 判断两个文件名指定的文件内容是否相同;
示例:
//获取系统默认的NSFileManager
NSFileManager* fm = [NSFileManager defaultManager];
NSString* fileName = [[NSString alloc] initWithFormat:@"/Users/jihaoyu"];
//判断是否存在ÿ