文件管理类【NSFileManager】
文件管理类【NSFileManager】是一个单例类
对文件本身的操作对文件进行管理,必须要获取文件管理器NSFileManager类的单例对象NSFileManager * fm = [NSFileManager defaultManager];
<1>创建文件管理器单例对象 NSFileManager * fm = [NSFileManager defaultManager];
<2>遍历目录下的内容
//浅度遍历( )
- (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error;
//深度遍历(当前文件夹里所有文件名和文件夹名) - (NSArray *)subpathsOfDirectoryAtPath:(NSString *)path error:(NSError **)error
<3>创建文件
//创建普通文件
- (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr;
//创建目录
- (BOOL)createDirectoryAtPath:(NSString *)path withIntermediateDirectories:(BOOL)createIntermediates attributes:(NSDictionary *)attributes error:(NSError **)error ;
<4>拷贝文件/目录
- (BOOL)copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error ;
<5>移动文件/目录
- (BOOL)moveItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error ;
<6>删除文件/目录
- (BOOL)removeItemAtPath:(NSString *)path error:(NSError **)error;
<7>获取文件属性
- (NSDictionary *)attributesOfItemAtPath:(NSString *)path error:(NSError **)error;
<8>判断文件是否存在
- (BOOL)fileExistsAtPath:(NSString *)path;
【NSData】二进制数据 //把字符串转化为NSData(****重要****)
NSString *str = @"aaaaa";
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
//NSData 转化为字符串(*****重要****) NSString *newStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
二 对文件内容的修改文件句柄类【NSFileHandle】 不是一个单例类文件的代言人,是个对象,象征文件 从文件句柄里读取信息,就是从文件中读取信息 往文件句柄里写入信息,就是向文件中写入信息 对文件进行读写首先需要NSFileHandle打开文件 NSFileHandle对文件进行读写都是NSData类型的二进制数据 NSFileHandle方法:
<1>打开文件方法()
NSFileHandle *readFh = [NSFileHandle fileHandleForUpdatingAtPath:filePath];
//以只读方式打开
+ (id)fileHandleForReadingAtPath:(NSString *)path;
//以只写方式打开
+ (id)fileHandleForWritingAtPath:(NSString *)path;
//以读写方式打开
+ (id)fileHandleForUpdatingAtPath:(NSString *)path;
//刚打开的文件偏移量为0
<2>从偏移量开始读指定长度的数据,每读一次都会改变偏移量
- (NSData *)readDataOfLength:(NSUInteger)length;
<3>从当前偏移量读到文件尾
- (NSData *)readDataToEndOfFile;
<4>设置文件偏移量
- (void)seekToFileOffset:(unsigned long long)offset;
<5>将文件偏移量定位到文件尾
- (unsigned long long)seekToEndOfFile;
<6>将文件的长度设置为offset大小(单位为字节)
- (void)truncateFileAtOffset:(unsigned long long)offset;
<7>写文件(会从文件偏移量开始用覆盖模式写)
- (void)writeData:(NSData *)data;
<8>截断原数据到指定字节数
- (void)truncateFileAtOffset:(unsigned long long)offset;
<9> 把要二进制文件立即同步写入到磁盘
- (void)synchronizeFile;