文件操作
声明带参宏:宏定义的名称(参数)
#define Path(s) [NSString stringWithFormat:@"路径/%@",s];
NSFileManager 文件管理类(常用)
NSFileHandle 文件操作句柄
//创建获取文件管理类的单例(在类中只会存在一次,不能重复声明)
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error = nil;
创建文件夹:方法中的参数(1.设置完整路径2.生成中间路径3.需要什么文件夹属性4.出错信息)
(无中间路径)
BOOL ret = [fileManager creatDicectoryAtPath:Path(@"test") withIntermediateDirectories:NO attributes:nil error:&error];
(有中间路径)
ret = [fileManager creatDicectoryAtPath:Path(@"test/test1") withIntermediateDirectories:YES attributes:nil error:&error];
创建文件:要写文件类型
NSString *string = @"www.baidu.com百度";
NSData *data = [string dataUsingEncoding:NSUTF8Encoding];
[fileManager creatFileAtPath:Path(@"test.txt") contents:data attributes:nil];
文件路径遍历:
浅度遍历
NSArray *contents = [fileManager contentsOfDictoryAtPath:@"路径" error:nil];
NSLog(@"%@",contents);
深度遍历
contents = [fileManager subpathsOfDictoryAtPath:@"路径" error:nil];
NSLog(@"%@",contents);
移动操作
[fileManager moveItemAtPath:@"路径/文件名.类型" toPath:@"新路径/文件名.类型" error:nil];
赋值文件
[fileManager copyItemAtPath:@"路径/文件名.类型" toPath:@"新路径/文件名.类型" error:nil];
删除文件
[fileManager removeItemAtPath:@"路径/文件名.类型" error:nil];
查看文件属性
NSDictionary *dic = [fileManager attributesOfItemAtPath:@"路径/文件名.类型" error:nil];
NSLog(@"%@",dic);
查看文件是否存在
BOOL dic = [fileManager fileExistsAtPath:@"路径"];
获得文件路径
NSFileHandle *fileHandle = [NSFileHandle fileHandleForReadingAtPath:@"路径/文件名.类型"];
从头到尾读取文件数据
NSLog(@"%@",[fileHandle readDataToEndOfFile]);
关闭文件
[fileHandle closeFile];
以写入文件打开
fileHandle = [NSFileHandle fileHandleForWritingAtPath:@"路径/文件名.类型"];
以更新方式打开(可读可写)
fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:@"路径/文件名.类型"];
读取文件数据
//将数据转为NSData,从光标位置读取到文件末尾
NSData *fileData = [fileHandle readDataToEndOfFile];
NSString *string = [[NSString alloc]initWithData:fileData encoding:UTF8StringEncoding];
移动光标位置
//移动到末尾
[fileHandle seekToEndOfFile];
//移动到第4个
[fileHandle seekToFileOffSet:4];
写入数据
//文件读写都是依据光标的位置
[fileHandle writeData:fileData];
立即同步文件数据
[fileHandle sychronizeFile];
清空文件夹
NSFileManager *fileManager = [NSFileManager defaultManager];