文件和目录的操作和管理
来源:互联网 发布:电视盒软件下载 编辑:程序博客网 时间:2024/06/09 02:38
文件和目录管理
1:什么文件和目录管理
文件目录管理:就是指文件和目录的创建,目录的遍历,文件目录的复制,剪切,删除等
2:文件管理器对象的创建(单例对象)
NSFileManager * fm = [NSFileManagerdefaultManager];
//文件管理器的创建
void createFileManage(void){
//fileManage对象一旦创建完成后,后续所有的文件操作都是通过fileManage进行操作的
NSFileManager *fileManage = [NSFileManagerdefaultManager];//创建一个单例类的对象
}
3:文件和目录的创建
//创建普通文件//如果两个文件的文件名相同时,创建成功,但是会用新文件覆盖旧的文件
- (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr;
//创建目录//第二个参数是:当自路径不存在时是否创建子路径
- (BOOL)createDirectoryAtPath:(NSString *)path withIntermediateDirectories:(BOOL)createIntermediates attributes:(NSDictionary *)attributes error:(NSError **)error ;
//文件和目录的创建
void createFileAndDir(void){
NSString *pathDesktop =@"/Users/mac/Desktop";//桌面路径
NSFileManager *fileManage = [NSFileManagerdefaultManager];
//- (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr;
//作用:创建文件
//path:创建的文件路径
//data:创建文件开始时给文件添加内容,如果时nil,创建的文件就是空文件
//attr:文件属性
[fileManage createFileAtPath:[pathDesktop stringByAppendingString:@"/file.txt"]contents:nilattributes:nil];
//- (BOOL)createDirectoryAtPath:(NSString *)path withIntermediateDirectories:(BOOL)createIntermediates attributes:(NSDictionary *)attributes error:(NSError **)error NS_AVAILABLE(10_5, 2_0);
//作用:创建目录
//path:目录的路径
//createIntermediates:如果创建的路径的自路径不存在时,是否连同自路径一起创建
//attributes:文件属性
//error:如果创建失败,保存创建失败的原因
NSError *error =nil;
[fileManage createDirectoryAtPath:[pathDesktop stringByAppendingString:@"/dir/dir1"]withIntermediateDirectories:NOattributes:nilerror:&error];
if (error) {
NSLog(@"创建目录失败 : %@", [errorlocalizedFailureReason]);
}
}
4:目录的遍历(traverse)
//浅度遍历
- (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error;
//深度遍历
- (NSArray *)subpathsOfDirectoryAtPath:(NSString *)path error:(NSError **)error
//目录的遍历
void traverseDir(void){
NSString *pathDesktop =@"/Users/mac/Desktop";//桌面路径
NSFileManager *fileManage = [NSFileManagerdefaultManager];
//- (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error NS_AVAILABLE(10_5, 2_0);
//作用:浅层遍历,只能遍历一层
NSArray *arrayContent = [fileManagecontentsOfDirectoryAtPath:[pathDesktopstringByAppendingString:@"/dir"]error:nil];
NSLog(@"%@", arrayContent);
//- (NSArray *)subpathsOfDirectoryAtPath:(NSString *)path error:(NSError **)error NS_AVAILABLE(10_5, 2_0);
//作用:深层遍历,一直遍历到最后一层
NSArray *arraySub = [fileManagesubpathsOfDirectoryAtPath:[pathDesktopstringByAppendingString:@"/dir"]error:nil];
NSLog(@"%@", arraySub);
}
5:复制文件和目录
//srcPath:原文件路径
//dstPath:新文件路径
- (BOOL)copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error ;
//复制文件或目录
void copyFileAndDir(void){
NSString *pathDesktop =@"/Users/mac/Desktop";//桌面路径
NSFileManager *fileManage = [NSFileManagerdefaultManager];
//- (BOOL)copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error NS_AVAILABLE(10_5, 2_0);
//作用:文件或目录的复制
//复制文件
[fileManage copyItemAtPath:[pathDesktopstringByAppendingString:@"/file.txt"]toPath:[pathDesktop stringByAppendingString:@"/dir/fileCopy.txt"]error:nil];、
[fileManage copyItemAtPath:[pathDesktopstringByAppendingString:@"/dir/dir1"]toPath:[pathDesktop stringByAppendingString:@"/dir1Copy"]error:nil];
}
6:剪切(cut)文件和目录
- (BOOL)moveItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error ;
//剪切文件或目录
void cutFileAndDir(void){
NSString *pathDesktop =@"/Users/mac/Desktop";//桌面路径
NSFileManager *fileManage = [NSFileManagerdefaultManager];
//- (BOOL)moveItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error NS_AVAILABLE(10_5, 2_0);
//作用:剪切文件或目录
[fileManage moveItemAtPath:[pathDesktopstringByAppendingString:@"/file.txt"]toPath:[pathDesktop stringByAppendingString:@"/dir/dir1/fileCut.txt"]error:nil];
}
7:删除文件和目录
- (BOOL)removeItemAtPath:(NSString *)path error:(NSError **)error;
//删除文件或目录
void deleteFileAndDir(void){
NSString *pathDesktop =@"/Users/mac/Desktop";//桌面路径
NSFileManager *fileManage = [NSFileManagerdefaultManager];
//- (BOOL)removeItemAtPath:(NSString *)path error:(NSError **)error NS_AVAILABLE(10_5, 2_0);
//作用:删除文件或目录
[fileManage removeItemAtPath:[pathDesktopstringByAppendingString:@"/file.txt"]error:nil];
}
8:获取文件属性(attribute)
- (NSDictionary *)attributesOfItemAtPath:(NSString *)path error:(NSError **)error;
//获取文件的属性
void getAttribute(void){
NSString *pathDesktop =@"/Users/mac/Desktop";//桌面路径
NSFileManager *fileManage = [NSFileManagerdefaultManager];//创建单例对象
//- (NSDictionary *)attributesOfItemAtPath:(NSString *)path error:(NSError **)error NS_AVAILABLE(10_5, 2_0);
//作用:获取文件或目录的相关属性
NSDictionary *dictionaryFile = [fileManageattributesOfItemAtPath:[pathDesktopstringByAppendingString:@"/file.txt"]error:nil];
NSDictionary *dictionaryDir = [fileManageattributesOfItemAtPath:[pathDesktopstringByAppendingString:@"/dir"]error:nil];
NSLog(@"%@", dictionaryFile);
NSLog(@"%@", dictionaryDir);
}
9:判断文件是否存在
- (BOOL)fileExistsAtPath:(NSString *)path;
//判断文件是否存在
void isHaveFileOrDir(void){
NSString *pathDesktop =@"/Users/mac/Desktop";//桌面路径
NSFileManager *fileManage = [NSFileManagerdefaultManager];//创建单例对象
if ([fileManagefileExistsAtPath:[pathDesktop stringByAppendingString:@"/file.txt"]]) {
NSLog(@"有这个文件");
} else {
NSLog(@"没有这个文件");
}
}
文件操作
1:什么是文件操作
文件操作:就是指对文件的打开,文件内容的读、写、设置偏移量和同步
2:文件的打开
//以只读方式打开
+ (id)fileHandleForReadingAtPath:(NSString *)path;
//以只写方式打开
+ (id)fileHandleForWritingAtPath:(NSString *)path;
//以读写方式打开
+ (id)fileHandleForUpdatingAtPath:(NSString *)path;
//文件的打开
void openFile(void){
//注意:NSFileHandle对象创建完成后,后续所有对文件内的操作都是通过NSFileHandle对象来完成的
NSString *pathDesktop =@"/Users/mac/Desktop";
//+ (id)fileHandleForReadingAtPath:(NSString *)path;
//作用:以只读的方式打开文件
NSFileHandle *fileHandleRead = [NSFileHandlefileHandleForReadingAtPath:[pathDesktopstringByAppendingString:@"/file.txt"]];
//+ (id)fileHandleForWritingAtPath:(NSString *)path;
//作用:以只写的方式打开文件
NSFileHandle *fileHandleWrite = [NSFileHandlefileHandleForWritingAtPath:[pathDesktopstringByAppendingString:@"/file.txt"]];
//+ (id)fileHandleForUpdatingAtPath:(NSString *)path;
//作用:以读写的方式打开文件
NSFileHandle *fileHandleUp = [NSFileHandlefileHandleForUpdatingAtPath:[pathDesktopstringByAppendingString:@"/file.txt"]];
}
3:文件内容的读取
1:读取指定长度的数据
- (NSData *)readDataOfLength:(NSUInteger)length;
2:从当前偏移量读到文件末尾
- (NSData *)readDataToEndOfFile;
//文件内容的读取
void readFile(void){
NSString *pathDesktop =@"/Users/mac/Desktop";//桌面路径
NSFileHandle *fileHandle = [NSFileHandlefileHandleForUpdatingAtPath:[pathDesktopstringByAppendingString:@"/file.txt"]];//以读写的方式打开文件
#if 0
//- (NSData *)readDataOfLength:(NSUInteger)length;
//作用:读取文件中指定长度的数据
NSData *dataFromFile = [fileHandle readDataOfLength:6];
NSString *stringFromData = [[NSString alloc] initWithData:dataFromFile encoding:NSUTF8StringEncoding];//把data转换成string
NSLog(@"%@", stringFromData);
#endif
//- (NSData *)readDataToEndOfFile;
//作用:读取文件中所有的数据
NSData *dataFromFile = [fileHandlereadDataToEndOfFile];
NSString *stringFromData = [[NSStringalloc] initWithData:dataFromFileencoding:NSUTF8StringEncoding];
NSLog(@"%@", stringFromData);
}
4:写文件
- (void)writeData:(NSData *)data;
//向文件中写数据
void writeDataToFile(void){
NSString *pathDesktop =@"/Users/mac/Desktop";//桌面路径
NSFileHandle *fileHandle = [NSFileHandlefileHandleForUpdatingAtPath:[pathDesktopstringByAppendingString:@"/file.txt"]];//以读写的方式打开文件
NSString *string =@"chen chao zui shuai";
NSData *dataFromString = [stringdataUsingEncoding:NSUTF8StringEncoding];//将string转换成data
//- (void)writeData:(NSData *)data;
//作用:向文件中写数据(覆盖之前内容)
[fileHandle writeData: dataFromString];
//思考:文件末尾出写入@"chen chao ni zui shuai"
NSLog(@"%@", [[NSStringalloc] initWithData:[fileHandlereadDataOfLength:5]encoding:NSUTF8StringEncoding]);
}
5:设置文件偏移量
1:将文件偏移量设置到文件中的指定位置
- (void)seekToFileOffset:(unsignedlong long)offset;
2:将文件偏移量设置到文件末尾
- (unsignedlong long)seekToEndOfFile;
//设置文件偏移量
void setFileSeek(void){
NSString *pathDesktop =@"/Users/mac/Desktop";//桌面路径
NSFileHandle *fileHandle = [NSFileHandlefileHandleForUpdatingAtPath:[pathDesktopstringByAppendingString:@"/file.txt"]];//以读写的方式打开文件
[fileHandle seekToFileOffset:5];//设置文件偏移量到指定位置
[fileHandle seekToEndOfFile];//设置文件偏移量到文件末尾
NSLog(@"%@", [[NSStringalloc] initWithData:[fileHandlereadDataOfLength:4]encoding:NSUTF8StringEncoding]);
}
- 文件和目录的操作和管理
- 文件和目录的操作
- 文件和目录管理
- python的文件操作和目录操作
- 文件和目录操作
- 文件和目录操作
- 文件和目录操作
- 操作文件和目录
- 文件和目录操作
- 文件和目录操作
- 文件和目录操作
- 操作文件和目录
- 管理文件、目录的权限和归属
- linux文件和目录的管理
- Linux的文件和目录管理
- linux管理文件和目录的命令
- Linux文件目录和用户的管理
- SA1-linux简单操作(文件和目录管理)
- matlab手动指定坐标轴位置和标签
- Python3学习笔记
- 函数指针
- 【iOS沉思录】Objective-C中的多态性分析
- JavaScript深层克隆对象
- 文件和目录的操作和管理
- Understanding Sweep angle in drawArc method of android
- bulk collect记录
- [10]DevOps 自动化运维工具Chef----- Chef 12 服务器端数据库解密
- java设计模式
- C++学习之虚函数和虚继承详解
- ats 5.3.2中的header-rewrite插件调研
- CocoaPods 安装 使用
- 在Spring Security中使用AJAX向后台传送数据