首页 > 系统 > iOS > 正文

iOS中NSFileManager文件常用操作整合

2019-11-09 13:51:48
字体:
来源:转载
供稿:网友
//获取Document路径+ (NSString *)getDocumentPath{ NSArray *filePaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); return [filePaths objectAtIndex:0];}//获取Library路径+ (NSString *)getLibraryPath{ NSArray *filePaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); return [filePaths objectAtIndex:0];}//获取应用程序路径+ (NSString *)getapplicationPath{ return NSHomeDirectory();}//获取Cache路径+ (NSString *)getCachePath{ NSArray *filePaths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); return [filePaths objectAtIndex:0];}//获取Temp路径+ (NSString *)getTempPath{ return NSTemporaryDirectory();}//判断文件是否存在于某个路径中+ (BOOL)fileIsExistOfPath:(NSString *)filePath{ BOOL flag = NO; NSFileManager *fileManager = [NSFileManager defaultManager]; if ([fileManager fileExistsAtPath:filePath]) { flag = YES; } else { flag = NO; } return flag;}//从某个路径中移除文件+ (BOOL)removeFileOfPath:(NSString *)filePath{ BOOL flag = YES; NSFileManager *fileManage = [NSFileManager defaultManager]; if ([fileManage fileExistsAtPath:filePath]) { if (![fileManage removeItemAtPath:filePath error:nil]) { flag = NO; } } return flag;}//从URL路径中移除文件- (BOOL)removeFileOfURL:(NSURL *)fileURL{ BOOL flag = YES; NSFileManager *fileManage = [NSFileManager defaultManager]; if ([fileManage fileExistsAtPath:fileURL.path]) { if (![fileManage removeItemAtURL:fileURL error:nil]) { flag = NO; } } return flag;}//创建文件路径+(BOOL)creatDirectoryWithPath:(NSString *)dirPath{ BOOL ret = YES; BOOL isExist = [[NSFileManager defaultManager] fileExistsAtPath:dirPath]; if (!isExist) { NSError *error; BOOL isSuccess = [[NSFileManager defaultManager] createDirectoryAtPath:dirPath withIntermediateDirectories:YES attributes:nil error:&error]; if (!isSuccess) { ret = NO; NSLog(@"creat Directory Failed. errorInfo:%@",error); } } return ret;}//创建文件+ (BOOL)creatFileWithPath:(NSString *)filePath{ BOOL isSuccess = YES; NSFileManager *fileManager = [NSFileManager defaultManager]; BOOL temp = [fileManager fileExistsAtPath:filePath]; if (temp) { return YES; } NSError *error; //stringByDeletingLastPathComponent:删除最后一个路径节点 NSString *dirPath = [filePath stringByDeletingLastPathComponent]; isSuccess = [fileManager createDirectoryAtPath:dirPath withIntermediateDirectories:YES attributes:nil error:&error]; if (error) { NSLog(@"creat File Failed. errorInfo:%@",error); } if (!isSuccess) { return isSuccess; } isSuccess = [fileManager createFileAtPath:filePath contents:nil attributes:nil]; return isSuccess;}//保存文件+ (BOOL)saveFile:(NSString *)filePath withData:(NSData *)data{ BOOL ret = YES; ret = [self creatFileWithPath:filePath]; if (ret) { ret = [data writeToFile:filePath atomically:YES]; if (!ret) { NSLog(@"%s Failed",__FUNCTION__); } } else { NSLog(@"%s Failed",__FUNCTION__); } return ret;}//追加写文件+ (BOOL)appendData:(NSData *)data withPath:(NSString *)path{ BOOL result = [self creatFileWithPath:path]; if (result) { NSFileHandle *handle = [NSFileHandle fileHandleForWritingAtPath:path]; [handle seekToEndOfFile]; [handle writeData:data]; [handle synchronizeFile]; [handle closeFile]; return YES; } else { NSLog(@"%s Failed",__FUNCTION__); return NO; }}//获取文件+ (NSData *)getFileData:(NSString *)filePath{ NSFileHandle *handle = [NSFileHandle fileHandleForReadingAtPath:filePath]; NSData *fileData = [handle readDataToEndOfFile]; [handle closeFile]; return fileData;}//读取文件+ (NSData *)getFileData:(NSString *)filePath startIndex:(long long)startIndex length:(NSInteger)length{ NSFileHandle *handle = [NSFileHandle fileHandleForReadingAtPath:filePath]; [handle seekToFileOffset:startIndex]; NSData *data = [handle readDataOfLength:length]; [handle closeFile]; return data;}//移动文件+ (BOOL)moveFileFromPath:(NSString *)fromPath toPath:(NSString *)toPath{ NSFileManager *fileManager = [NSFileManager defaultManager]; if (![fileManager fileExistsAtPath:fromPath]) { NSLog(@"Error: fromPath Not Exist"); return NO; } if (![fileManager fileExistsAtPath:toPath]) { NSLog(@"Error: toPath Not Exist"); return NO; } NSString *headerComponent = [toPath stringByDeletingLastPathComponent]; if ([self creatFileWithPath:headerComponent]) { return [fileManager moveItemAtPath:fromPath toPath:toPath error:nil]; } else { return NO; }}//拷贝文件+(BOOL)copyFileFromPath:(NSString *)fromPath toPath:(NSString *)toPath{ NSFileManager *fileManager = [NSFileManager defaultManager]; if (![fileManager fileExistsAtPath:fromPath]) { NSLog(@"Error: fromPath Not Exist"); return NO; } if (![fileManager fileExistsAtPath:toPath]) { NSLog(@"Error: toPath Not Exist"); return NO; } NSString *headerComponent = [toPath stringByDeletingLastPathComponent]; if ([self creatFileWithPath:headerComponent]) { return [fileManager copyItemAtPath:fromPath toPath:toPath error:nil]; } else { return NO; }}//获取文件夹下文件列表+ (NSArray *)getFileListInFolderWithPath:(NSString *)path{ NSFileManager *fileManager = [NSFileManager defaultManager]; NSError *error; NSArray *fileList = [fileManager contentsOfDirectoryAtPath:path error:&error]; if (error) { NSLog(@"getFileListInFolderWithPathFailed, errorInfo:%@",error); } return fileList;}//获取文件大小+ (long long)getFileSizeWithPath:(NSString *)path{ unsigned long long fileLength = 0; NSNumber *fileSize; NSFileManager *fileManager = [NSFileManager defaultManager]; NSDictionary *fileAttributes = [fileManager attributesOfItemAtPath:path error:nil]; if ((fileSize = [fileAttributes objectForKey:NSFileSize])) { fileLength = [fileSize unsignedLongLongValue]; } return fileLength;// NSFileManager* manager =[NSFileManager defaultManager];// if ([manager fileExistsAtPath:path]){// return [[manager attributesOfItemAtPath:path error:nil] fileSize];// }// return 0;}//获取文件创建时间+ (NSString *)getFileCreatDateWithPath:(NSString *)path{ NSString *date = nil; NSFileManager *fileManager = [NSFileManager defaultManager]; NSDictionary *fileAttributes = [fileManager attributesOfItemAtPath:path error:nil]; date = [fileAttributes objectForKey:NSFileCreationDate]; return date;}//获取文件所有者+ (NSString *)getFileOwnerWithPath:(NSString *)path{ NSString *fileOwner = nil; NSFileManager *fileManager = [NSFileManager defaultManager]; NSDictionary *fileAttributes = [fileManager attributesOfItemAtPath:path error:nil]; fileOwner = [fileAttributes objectForKey:NSFileOwnerAccountName]; return fileOwner;}//获取文件更改日期+ (NSString *)getFileChangeDateWithPath:(NSString *)path{ NSString *date = nil; NSFileManager *fileManager = [NSFileManager defaultManager]; NSDictionary *fileAttributes = [fileManager attributesOfItemAtPath:path error:nil]; date = [fileAttributes objectForKey:NSFileModificationDate]; return date;}

工程代码下载地址(更多常用操作整合)


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表