首页 > 代码库 > iOS 文件学习笔记
iOS 文件学习笔记
文件操作
foundation 框架中利用文件系统对文件进行操作。
基本操作是由NSFileManager类提供的,主要功能如下:
- 创建一个新文件
- 文件中读取数据
- 写入数据
- 文件的重命名
- 删除文件
- 测试文件是否存在
- 确定文件的大小以及其他属性
- 复制文件
- 测试两个文件是否相同
- 打开文件,执行读写操作
- 在文件中查找指定位置
- 从文件中读取指定书目的字节,或写入指定数目的字节数据
- (NSData *)contentsAtPath:(NSString *)path; | 从一个文件中读取数据 |
- (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr; | 向文件中写入数据 |
- (BOOL)removeItemAtPath:(NSString *)path error:(NSError **)error | 删除文件 |
- (BOOL)moveItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error | 移动文件 |
- (BOOL)copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error | 复制文件 |
- (BOOL)contentsEqualAtPath:(NSString *)path1 andPath:(NSString *)path2; | 比较两个文件内容是否相同 |
- (BOOL)fileExistsAtPath:(NSString *)path; | 文件是否存在 |
- (BOOL)isReadableFileAtPath:(NSString *)path; | 文件是否能够执行读操作 |
- (BOOL)isWritableFileAtPath:(NSString *)path; | 文件是否能执行写操作 |
- (NSDictionary *)attributesOfItemAtPath:(NSString *)path error:(NSError **)error | 获取文件的属性 |
- (BOOL)setAttributes:(NSDictionary *)attributes ofItemAtPath:(NSString *)path error:(NSError **)error | 设置文件属性 |
<span style="font-family:Comic Sans MS;font-size:14px;">NSFileManager *fm = [NSFileManager defaultManager]; </span>
NSData类
@property (readonly,copy) NSString *currentDirectoryPath; | 获取当前目录 |
- (BOOL)changeCurrentDirectoryPath:(NSString *)path; | 更改当前目录 |
- (BOOL)copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error | 复制文件 |
- (BOOL)createDirectoryAtPath:(NSString *)path withIntermediateDirectories:(BOOL)createIntermediates attributes:(NSDictionary *)attributes error:(NSError **)error | 创建一个目录并设置属性 |
- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory; | 测试路径是否问目录 |
- (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error | 列出目录内容 |
- (BOOL)removeItemAtPath:(NSString *)path error:(NSError **)error | 删除目录 |
- (BOOL)moveItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error | 移动或重命名目录 |
- (NSDirectoryEnumerator *)enumeratorAtPath:(NSString *)path; | 枚举目录内容,如果还是目录会继续深入 |
+ (NSString *)pathWithComponents:(NSArray *)components; | 根据组件中的元素构造路径 |
@property (readonly,copy) NSArray *pathComponents; | 析构路径,获得组成此路径的各个部分 |
@property (readonly,copy) NSString *lastPathComponent; | 获取路径的最后一个组成部分 |
@property (readonly,copy) NSString *pathExtension; | 从组件最后部分获取扩展名 |
- (NSString *)stringByAppendingPathComponent:(NSString *)str; | 将str添加到现有路径的末尾 |
- (NSString *)stringByAppendingPathExtension:(NSString *)str; | 将扩展名添加到末尾 |
@property (readonly,copy) NSString *stringByDeletingLastPathComponent; | 删除最后组成部分 |
@property (readonly,copy) NSString *stringByDeletingPathExtension; | 删除最后部分的扩展名 |
@property (readonly,copy) NSString *stringByExpandingTildeInPath; | 将字符串中的带字符扩展为主目录(~) |
@property (readonly,copy) NSString *stringByResolvingSymlinksInPath; | 解析路径中的符号链接 |
@property (readonly,copy) NSString *stringByStandardizingPath; | 通过尝试解~ . .. 和符号链接来标准化路径 |
+ (NSProcessInfo *)processInfo; | 返回当前线程的信息 |
@property (readonly,copy) NSArray *arguments; | 以string对象数字的形式返回当前进程的参数 |
@property (readonly,copy) NSDictionary *environment; | 返回字典,描述当前环境变量 |
@property (readonly)int processIdentifier; | 返回进程表示符,它是操作系统赋予进程的唯一数字 |
@property (readonly,copy) NSString *globallyUniqueString; | 每次调用这个方法时,返回不同的单值字符串。可用这个字符串生成单值临时文件名 |
@property (readonly,copy) NSString *hostName; | 返回主机系统的名称 |
- (NSUInteger)operatingSystem | 返回表示操作系统的数字 |
- (NSString *)operatingSystemName | 返回操作系统的名称 |
@property (readonly,copy) NSString *operatingSystemVersionString; | 返回操作系统的当前版本 |
@property (copy)NSString *processName; | 将当前进程名称设置为name |
- 打开文件,并获取一个NSFileHandle对象,以便在后面的i/o操作中引用该文件。
- 对文件执行i/o操作。
- 关闭文件
+ (instancetype)fileHandleForReadingAtPath:(NSString *)path; | 打开一个文件准备读取 |
+ (instancetype)fileHandleForWritingAtPath:(NSString *)path; | 打开一个文件准备写入 |
+ (instancetype)fileHandleForUpdatingAtPath:(NSString *)path; | 打开一个文件准备更新(读写) |
@property (readonly,copy) NSData *availableData; | 从设备或者通道返回可用的数据 |
- (NSData *)readDataToEndOfFile; | 读取其余的数据直到文件末尾 |
- (NSData *)readDataOfLength:(NSUInteger)length; | 从文件中读取指定bytes的内容 |
- (void)writeData:(NSData *)data; | 将data写入文件 |
@property (readonly)unsigned longlong offsetInFile; | 获取当前文件的偏移量 |
- (void)seekToFileOffset:(unsignedlong long)offset; | 设置当前文件的偏移量 |
- (unsignedlong long)seekToEndOfFile; | 将当前文件的偏移量定位到文件的末尾 |
- (void)truncateFileAtOffset:(unsignedlong long)offset; | 将文件的长度设置为offset字节 |
- (void)closeFile; | 关闭文件 |
iOS 文件学习笔记