Objective-C NSFileManager的使用 各种文件操作
来源:互联网 发布:arcgis裁剪栅格数据 编辑:程序博客网 时间:2024/06/10 18:31
所有方法
都很简单,大概记录一下,写文件并没有是追加的方式而是简单的覆盖
//创建文件夹- (BOOL)creatDir:(NSString*)newDirName at:(NSString*)dirName ;//创建文件- (BOOL)creatFile:(NSString*)fileName at:(NSString*)dirName ;//写文件-字符串- (BOOL)writeString:(NSString*)string inFilePath:(NSString*)filePath;//写文件-字典- (BOOL)writeDict:(NSDictionary*)dict inFilePath:(NSString*)filePath ;//写文件-数组- (BOOL)writeArray:(NSArray*)array inFilePath:(NSString*)filePath ;//读文件 - (NSString*)readFileAt:(NSString*)filePath;//获取某个目录下所有文件- (NSArray*)getAllFileAtDir:(NSString*)dirPath ;//判断文件是否存在- (BOOL)fileIsExistAtPath:(NSString*)filePath ;//计算某个文件大小- (unsigned long long)computerFileSizeAtPath:(NSString*)filePath;//计算整个文件夹中所有文件大小- (unsigned long long)computerDirSizeAtPath:(NSString*)dirPath;//删除文件- (BOOL)removeFileAtPath:(NSString*)filePath;//移动文件- (BOOL)moveFile:(NSString*)fileName fromPath:(NSString*)fromPath toPath:(NSString*)toPath;
具体实现
初始化一下NSFileManager
并获取根路径
主要是加了一些判断,代码不是很精简 不要笑我。
- (instancetype)init { self = [super init]; if (self) { self.homePath = NSHomeDirectory(); self.manager = [NSFileManager defaultManager]; NSLog(@"根路径地址:%@",self.homePath); } return self;}
//创建文件夹- (BOOL)creatDir:(NSString*)newDirName at:(NSString*)dirName { NSString *path = [self.homePath stringByAppendingString:dirName]; NSString *filePath = [path stringByAppendingPathComponent:newDirName]; if ([self.manager fileExistsAtPath:filePath]) { NSLog( @"创建失败,目录已存在"); }else { BOOL isCreate = [self.manager createDirectoryAtPath:filePath withIntermediateDirectories:NO attributes:nil error:nil]; if (isCreate) { NSLog( @"创建成功"); return YES; } else { NSLog( @"创建失败,请检查路径"); return NO; } } return NO;}
//创建文件- (BOOL)creatFile:(NSString*)fileName at:(NSString*)dirName { //目录位置 NSString *dirPath = [self.homePath stringByAppendingString:dirName]; //文件位置 NSString *filePath = [dirPath stringByAppendingPathComponent:fileName]; BOOL isDir = NO; BOOL isFileExist = [self.manager fileExistsAtPath:dirPath isDirectory:&isDir]; //目录是否存在 if (!(isFileExist && isDir)) { NSLog(@"目录不存在,请先创建目录"); return NO; } //文件是否存在 if (![self.manager fileExistsAtPath:filePath]) { BOOL isCreate = [self.manager createFileAtPath:filePath contents:nil attributes:nil]; if (isCreate) { NSLog(@"创建成功"); return YES; } else { NSLog(@"创建失败"); return NO; } } else { NSLog(@"创建失败,文件已存在"); return NO; } return NO;}
//写文件-字符串- (BOOL)writeString:(NSString*)string inFilePath:(NSString*)filePath{ NSString *path = [self.homePath stringByAppendingString:filePath]; BOOL isFileExist = [self.manager fileExistsAtPath:path]; if (isFileExist) { BOOL isWrite = [string writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil]; if (isWrite) { NSLog(@"写入成功"); return YES; } else { NSLog( @"写入失败"); return NO; } }else{ NSLog(@"文件不存在,请先创建文件"); return NO; } return NO;}
//写文件-字典- (BOOL)writeDict:(NSDictionary*)dict inFilePath:(NSString*)filePath { NSString *path = [self.homePath stringByAppendingString:filePath]; BOOL isFileExist = [self.manager fileExistsAtPath:path]; if (isFileExist) { BOOL isWrite = [dict writeToFile:path atomically:YES]; if (isWrite) { NSLog(@"写入成功"); return YES; } else { NSLog(@"写入失败"); return NO; } }else{ NSLog(@"文件不存在,请先创建文件"); return NO; } return NO;}
//写文件-数组- (BOOL)writeArray:(NSArray*)array inFilePath:(NSString*)filePath { NSString *path = [self.homePath stringByAppendingString:filePath]; BOOL isFileExist = [self.manager fileExistsAtPath:path]; if (isFileExist) { BOOL isWrite = [array writeToFile:path atomically:YES]; if (isWrite) { NSLog(@"写入成功"); return YES; } else { NSLog(@"写入失败"); return NO; } }else{ NSLog(@"文件不存在,请先创建文件"); return NO; } return NO;}
//读文件- (NSString*)readFileAt:(NSString*)filePath{ NSString *path = [self.homePath stringByAppendingString:filePath]; NSData *data = [self.manager contentsAtPath:path]; NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; return result;}
//获取某个目录下所有文件- (NSArray*)getAllFileAtDir:(NSString*)dirPath { NSString *path = [self.homePath stringByAppendingString:dirPath]; NSArray *dirArray = [self.manager contentsOfDirectoryAtPath:path error:nil]; return dirArray;}
//判断文件是否存在- (BOOL)fileIsExistAtPath:(NSString*)filePath { NSString *path = [self.homePath stringByAppendingString:filePath]; BOOL isFileExist = [self.manager fileExistsAtPath:path]; if (isFileExist) { NSLog(@"文件存在"); return YES; } else { NSLog(@"文件不存在"); return NO; } return NO;}
//计算某个文件大小 单位是字节- (unsigned long long)computerFileSizeAtPath:(NSString*)filePath { NSString *path = [self.homePath stringByAppendingString:filePath]; BOOL isDir; BOOL isFile = [self.manager fileExistsAtPath:path isDirectory:&isDir]; if (!isDir) { if (!isFile) { NSLog(@"文件不存在"); return 0; }else { unsigned long long fileSize = [self.manager attributesOfItemAtPath:path error:nil].fileSize; return fileSize; } } else { NSLog( @"该文件是一个目录"); return 0; } return 0;}
//计算整个文件夹中所有文件大小- (unsigned long long)computerDirSizeAtPath:(NSString*)dirPath { NSString *path = [self.homePath stringByAppendingString:dirPath]; BOOL isExist = [self.manager fileExistsAtPath:path]; if (isExist) { NSEnumerator *childFilesEnumerator = [[self.manager subpathsAtPath:path] objectEnumerator]; NSString* fileName; long long folderSize = 0; while ((fileName = [childFilesEnumerator nextObject]) != nil){ NSString* fileAbsolutePath = [path stringByAppendingPathComponent:fileName]; folderSize += [self.manager attributesOfItemAtPath:fileAbsolutePath error:nil].fileSize; } return folderSize; } else { NSLog(@"目录不存在"); return 0; } return 0;}
//删除文件- (BOOL)removeFileAtPath:(NSString*)filePath { NSString *path = [self.homePath stringByAppendingString:filePath]; if ([self.manager fileExistsAtPath:path]) { BOOL isRemove = [self.manager removeItemAtPath:path error:nil]; if (!isRemove) { NSLog(@"移除失败"); return NO; } else { NSLog(@"移除成功"); return YES; } } else { NSLog(@"文件不存在"); return NO; } return NO;}
//移动文件- (BOOL)moveFile:(NSString*)fileName fromPath:(NSString*)fromPath toPath:(NSString*)toPath { NSString *fPath = [self.homePath stringByAppendingString:fromPath]; NSString *src = [fPath stringByAppendingPathComponent:fileName]; NSString *tPath = [self.homePath stringByAppendingString:toPath]; NSString *des = [tPath stringByAppendingPathComponent:fileName]; if (![self.manager fileExistsAtPath:src]) { NSLog(@"文件不存在"); return NO; }else { if (![self.manager fileExistsAtPath:tPath]) { NSLog(@"目标路径不存在"); return NO; } else { BOOL move = [self.manager moveItemAtPath:src toPath:des error:nil]; if (move) { NSLog( @"移动成功"); return YES; } else { NSLog(@"移动失败"); return NO; } } } return NO;}
0 0
- Objective-C NSFileManager的使用 各种文件操作
- Objective-C语法之----NSFileManager的使用(文件操作)(
- Objective-C NSFileManager的使用
- Objective-C文件和目录操作,IOS文件操作,NSFileManager使用文件操作
- Objective-C文件和目录操作,IOS文件操作,NSFileManager使用文件操作
- Objective-C文件和目录操作,IOS文件操作,NSFileManager使用文件操作
- NSFileManager使用文件操作
- Objective-c NSFileManager类和NSFileHandle类的使用
- object-c NSFileManager 文件操作
- Objective-C NSFileManager 文件管理总结
- Objective-C NSFileManager 管理文件和目录
- [6]姥爷幽默谈Objective-C-文件操作类NSFileManager,NSFileHandle
- Objective-C 【NSFileManager 的用法深入探讨】
- Objective-c NSFileManager
- Objective-c NSFileManager
- Objective-C 创建文件 读取文件内容 (NSFileManager)
- Objective C - NSString & NSMutableString 的各种使用
- Objective-C 文件操作
- 【video】视频压缩编码和音频压缩编码的基本原理
- 使用java实现栈
- Objective-C AVPlayer播放视频的使用与封装
- 虚拟IP原理
- 实现翻转卡片的动画效果
- Objective-C NSFileManager的使用 各种文件操作
- 进一步理解指针2:双指针、指针数组和数组指针
- android bluetooth——蓝牙的开启、搜索、配对与连接
- #649 – KeyStates 属性包含了 IsDown 和IsToggled的内容(KeyStates Property Combines IsDown and IsToggled)
- angular......ngRepeat嵌套
- 入门训练 圆的面积
- swift3.0 coreData的使用-日记本demo
- C++中函数调用时的三种参数传递方式
- Windows远程连接Ubuntu (远程桌面和XDMCP)