iOS NSFileManager 文件操作详解
2016-07-21 11:34
267 查看
FileManager.h文件: #import <Foundation/Foundation.h> @interface FileManager : NSObject +(BOOL)fileExistsAtPath:(NSString *)path; +(NSString *)getDocumentsPath; +(BOOL)createDirectoryWithPath:(NSString *)path; +(BOOL)removeFileAtPath:(NSString *)filePath; +(BOOL)renameFileName:(NSString *)oldName toNewName:(NSString *)newName; +(NSData *)readFileContent:(NSString *)filePath; +(BOOL)saveToDirectory:(NSString *)path data:(NSData *)data name:(NSString *)newName; +(float)getFileSize:(NSString *)filePath; @end FileManager.m文件: #import "FileManager.h" @class NSFileManager; #define DocumentsPath [self getDocumentsPath] @implementation FileManager //判断目录是否存在 +(BOOL)fileExistsAtPath:(NSString *)path { return [[NSFileManager defaultManager] fileExistsAtPath:path]; } //获取Documents路径 +(NSString *)getDocumentsPath { NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString * documentsDirectory = [paths objectAtIndex:0]; return documentsDirectory; } //在Documents目录下创建新目录或文件 +(BOOL)createDirectoryWithPath:(NSString *)path { BOOL result = NO; NSFileManager * fileManager = [NSFileManager defaultManager]; NSString * myDirectory = [DocumentsPath stringByAppendingPathComponent:path]; if ([fileManager fileExistsAtPath:myDirectory] == NO) { NSError * error = nil; result=[fileManager createDirectoryAtPath:myDirectory withIntermediateDirectories:NO attributes:nil error:&error]; if (error) { NSLog(@"创建目录失败:%@",[error localizedDescription]); } } return result; } //删除目录或文件 +(BOOL)removeFileAtPath:(NSString *)filePath { BOOL result = NO; NSError * error = nil; NSString * fullPath = [DocumentsPath stringByAppendingPathComponent:filePath]; result = [[NSFileManager defaultManager] removeItemAtPath:fullPath error:&error]; if (error) { NSLog(@"删除失败:%@",[error localizedDescription]); } return result; } //重命名目录或文件 +(BOOL)renameFileName:(NSString *)oldName toNewName:(NSString *)newName { BOOL result = NO; NSError * error = nil; result = [[NSFileManager defaultManager] moveItemAtPath:[DocumentsPath stringByAppendingPathComponent:oldName] toPath:[DocumentsPath stringByAppendingPathComponent:newName] error:&error]; if (error) { NSLog(@"重命名失败:%@",[error localizedDescription]); } return result; } //读取某个文件 +(NSData *)readFileContent:(NSString *)filePath { return [[NSFileManager defaultManager] contentsAtPath:[DocumentsPath stringByAppendingPathComponent:filePath]]; } //保存某个文件 +(BOOL)saveToDirectory:(NSString *)path data:(NSData *)data name:(NSString *)newName { return [[NSFileManager defaultManager] createFileAtPath:[DocumentsPath stringByAppendingPathComponent:[path stringByAppendingPathComponent:newName]] contents:data attributes:nil]; } //计算文件大小 +(float)getFileSize:(NSString *)filePath { NSError * error = nil; NSDictionary * attributes = [NSDictionary dictionaryWithDictionary:[[NSFileManager defaultManager] attributesOfItemAtPath:[DocumentsPath stringByAppendingPathComponent:filePath] error:&error]]; if (attributes != nil) { return [[attributes objectForKey:NSFileSize] floatValue]; } if (error) { NSLog(@"计算文件大小失败:%@",[error localizedDescription]); } return 0; } @end
相关文章推荐
- ios 消除 字符串 首尾空格
- iOS 改变TableHeadView的高度,tableView自适应
- 获取iOS设备上所有的进程名字,以及进程的ID,
- iOS 判断设备是否可以发短信和打电话
- iOS开发学习之大牛们的博客
- iOS9下, openURL方法无法使用?
- iOS静态库和动态库的区别
- iOS开发之理解iOS中的MVC设计模式
- iOS - + initialize 与 +load
- Bugly,手动生成符号表的步骤,
- IOS 带中文的URL 转为服务器可以识别的%格式 iOS NSString 和NSData 转换
- iOS framework
- iOS开发--NSDate与NSDateFormatter的相关用法【转】
- ios 键盘右上角添加完成按钮
- iOS 屏幕旋转
- iOS开发者账号、证书的区别以及证书被误删除
- iOS动画(Core Animation)总结
- iOS—最全的真机测试教程
- 在iOS中使用字体文件.ttf(icon font,可缩放矢量图)
- iOS 页面之间的传值总结