在沙盒中创建、覆盖和删除文件的一种简单方法。
使用 iOS 的 sdk 直接管理文件既繁琐又无聊且难以阅读。FZEasyFile 提供了一种在沙盒中创建或覆盖文件的方法。如果想要创建文件,只需通知 FZEasyFile 您的文件名,例如 "my/file/path/info.txt"。不需要关心根目录是什么,或者 "my/file/path/" 目录是否存在。
实际上,根目录是沙盒中的 "Documents",如果不存在,"my/file/path" 将会自动创建。
将 "FZEasyFile.h" 和 "FZEasyFile.m" 拖到您的项目中。并在源文件中导入 .h 文件。
#import "FZEasyFile.h"
[EasyFile isFileExists:@"my/file/path/info.txt"]
[EasyFile createFile:"my/file/path/info.txt" overwrite:NO];
NSString *fullName = [EasyFile fullFileName:"my/file/path/info.txt"];
在得到完整名称后,您可以将其传递给其他 API,例如 NSInputStream。
NSInputStream *input = [NSInputStream inputStreamWithFileAtPath:fullName];
这里我粘贴了两段代码。分别是一个使用传统方式,另一个使用 FZEasyFile。以传统方式创建新文件
NSFileManager *fileManager = [NSFileManager defaultManager];
//获取document路径,括号中属性为当前应用程序独享
NSArray *directoryPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDirectory = [directoryPaths objectAtIndex:0];
//查找文件夹,如果不存在,就创建一个文件夹
NSString *dir = [documentDirectory stringByAppendingPathComponent:@SAVEDIR];
NSLog(@"cache dir %@", dir);
if(![fileManager fileExistsAtPath:dir])
{
if(![fileManager createDirectoryAtPath:dir withIntermediateDirectories:YES attributes:nil error:nil])
{
NSLog(@"create dir:(%@) error", dir);
return;
}
}
//定义记录文件全名以及路径的字符串filePath
NSString *filePath = [dir stringByAppendingPathComponent:[[NSString alloc]initWithFormat:@"/%@", filename]];
//查找文件,如果不存在,就创建一个文件
NSData *data = [lHtml dataUsingEncoding:NSUTF8StringEncoding];
if (![fileManager fileExistsAtPath:filePath]) {
[fileManager createFileAtPath:filePath contents:data attributes:nil];
}
使用 FZEasyFile 创建新文件
[EasyFile createFile:fileName overwrite:NO];
NSOutputStream *output = [NSOutputStream outputStreamToFileAtPath:[EasyFile fullFileName:fileName] append:NO];
请发邮件给我: [email protected]
MIT 许可证。请参见 LICENSE
文件。