iOS 利用FZEasyFile本地保存 和 常规保存
2015-07-14 18:10
337 查看
1、常规保存(较麻烦)
//
//FZEasyFile.h
//FZEasyFile
//
//Createdbyzhoujunon14-4-29.
//Copyright(c)2014年shannonchou.Allrightsreserved.
//
#import<Foundation/Foundation.h>
@interfaceFZEasyFile:NSObject
/**
singletonpattern.
@returnthesharedinstance.
*/
+(FZEasyFile*)sharedInstance;
/**
converttheshortfilenametofullfilename.e.g."mycache/user/icon.png"->"/Users/zhoujun/Library/ApplicationSupport/iPhoneSimulator/7.1/Applications/ABCE2119-E864-4492-A3A9-A238ADA74BE5/Documents/mycache/user/icon.png".
@returnfullfilename.
*/
-(NSString*)fullFileName:(NSString*)shortFileName;
/**
testifthefileexists.
@paramfileNamefilepathandfilename,e.g."mycache/user/icon.png".
@returnYESifexists,NOotherwise.
*/
-(BOOL)isFileExists:(NSString*)fileName;
/**
createafile
@paramfileNamefileNamefilepathandfilename,e.g."mycache/user/icon.png".
@paramshouldOverwriteYES:ifthefileexiststhenoverwirteit,NO:ifthefileexiststhendonothing
*/
-(void)createFile:(NSString*)fileNameoverwrite:(BOOL)shouldOverwrite;
@end
//
//FZEasyFile.m
//FZEasyFile
//
//Createdbyzhoujunon14-4-29.
//Copyright(c)2014年shannonchou.Allrightsreserved.
//
#import"FZEasyFile.h"
@implementationFZEasyFile
staticFZEasyFile*instance;
+(FZEasyFile*)sharedInstance{
if(!instance){
@synchronized(FZEasyFile.class){
if(!instance){
instance=[[FZEasyFilealloc]init];
}
}
}
returninstance;
}
-(NSString*)fullFileName:(NSString*)shortFileName{
//searchthe"document"path
NSArray*directoryPaths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString*documentDirectory=[directoryPathsobjectAtIndex:0];
NSString*file=[documentDirectorystringByAppendingPathComponent:shortFileName];
returnfile;
}
-(BOOL)isFileExists:(NSString*)fileName{
NSFileManager*fileManager=[NSFileManagerdefaultManager];
NSString*file=[selffullFileName:fileName];
return[fileManagerfileExistsAtPath:file];
}
-(void)createFile:(NSString*)fileNameoverwrite:(BOOL)shouldOverwrite{
NSFileManager*fileManager=[NSFileManagerdefaultManager];
//createfiledirectory,includemultilayerdirectory
NSRangelastTag=[fileNamerangeOfString:@"/"options:NSBackwardsSearch];
if(lastTag.location!=NSNotFound&&lastTag.location!=0){
NSString*shortDir=[fileNamesubstringToIndex:lastTag.location];
NSString*fullDir=[selffullFileName:shortDir];
NSLog(@"fulldirectory:%@",fullDir);
if(![fileManagerfileExistsAtPath:fullDir]){
[fileManagercreateDirectoryAtPath:fullDirwithIntermediateDirectories:YESattributes:nilerror:nil];
}
}
NSString*file=[selffullFileName:fileName];
NSLog(@"fullfilename:%@",file);
//filenotexistsorwanttooverwriteit
if(shouldOverwrite||![fileManagerfileExistsAtPath:file]){
BOOLsuc=[fileManagercreateFileAtPath:filecontents:nilattributes:nil];
NSLog(@"createfile(%@)%@",file,suc?@"successfully":@"failed");
}
}
@end
Afterthesecallingthecontentofthefileis"ab".
转换
Aftergettingthefullname,youcanpassittootherAPI,suchasNSInputStream:
NSFileManager*fileManager=[NSFileManagerdefaultManager]; //获取document路径,括号中属性为当前应用程序独享 NSArray*directoryPaths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES); NSString*documentDirectory=[directoryPathsobjectAtIndex:0]; //查找文件夹,如果不存在,就创建一个文件夹 NSString*dir=[documentDirectorystringByAppendingPathComponent:@SAVEDIR]; NSLog(@"cachedir%@",dir); if(![fileManagerfileExistsAtPath:dir]) { if(![fileManagercreateDirectoryAtPath:dirwithIntermediateDirectories:YESattributes:nilerror:nil]) { NSLog(@"createdir:(%@)error",dir); return; } } //定义记录文件全名以及路径的字符串filePath NSString*filePath=[dirstringByAppendingPathComponent:[[NSStringalloc]initWithFormat:@"/%@",filename]]; //查找文件,如果不存在,就创建一个文件 NSData*data=[lHtmldataUsingEncoding:NSUTF8StringEncoding]; if(![fileManagerfileExistsAtPath:filePath]){ [fileManagercreateFileAtPath:filePathcontents:dataattributes:nil]; } 2、FZEasyFile保存 导入的文件:
//
//FZEasyFile.h
//FZEasyFile
//
//Createdbyzhoujunon14-4-29.
//Copyright(c)2014年shannonchou.Allrightsreserved.
//
#import<Foundation/Foundation.h>
@interfaceFZEasyFile:NSObject
/**
singletonpattern.
@returnthesharedinstance.
*/
+(FZEasyFile*)sharedInstance;
/**
converttheshortfilenametofullfilename.e.g."mycache/user/icon.png"->"/Users/zhoujun/Library/ApplicationSupport/iPhoneSimulator/7.1/Applications/ABCE2119-E864-4492-A3A9-A238ADA74BE5/Documents/mycache/user/icon.png".
@returnfullfilename.
*/
-(NSString*)fullFileName:(NSString*)shortFileName;
/**
testifthefileexists.
@paramfileNamefilepathandfilename,e.g."mycache/user/icon.png".
@returnYESifexists,NOotherwise.
*/
-(BOOL)isFileExists:(NSString*)fileName;
/**
createafile
@paramfileNamefileNamefilepathandfilename,e.g."mycache/user/icon.png".
@paramshouldOverwriteYES:ifthefileexiststhenoverwirteit,NO:ifthefileexiststhendonothing
*/
-(void)createFile:(NSString*)fileNameoverwrite:(BOOL)shouldOverwrite;
@end
//
//FZEasyFile.m
//FZEasyFile
//
//Createdbyzhoujunon14-4-29.
//Copyright(c)2014年shannonchou.Allrightsreserved.
//
#import"FZEasyFile.h"
@implementationFZEasyFile
staticFZEasyFile*instance;
+(FZEasyFile*)sharedInstance{
if(!instance){
@synchronized(FZEasyFile.class){
if(!instance){
instance=[[FZEasyFilealloc]init];
}
}
}
returninstance;
}
-(NSString*)fullFileName:(NSString*)shortFileName{
//searchthe"document"path
NSArray*directoryPaths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString*documentDirectory=[directoryPathsobjectAtIndex:0];
NSString*file=[documentDirectorystringByAppendingPathComponent:shortFileName];
returnfile;
}
-(BOOL)isFileExists:(NSString*)fileName{
NSFileManager*fileManager=[NSFileManagerdefaultManager];
NSString*file=[selffullFileName:fileName];
return[fileManagerfileExistsAtPath:file];
}
-(void)createFile:(NSString*)fileNameoverwrite:(BOOL)shouldOverwrite{
NSFileManager*fileManager=[NSFileManagerdefaultManager];
//createfiledirectory,includemultilayerdirectory
NSRangelastTag=[fileNamerangeOfString:@"/"options:NSBackwardsSearch];
if(lastTag.location!=NSNotFound&&lastTag.location!=0){
NSString*shortDir=[fileNamesubstringToIndex:lastTag.location];
NSString*fullDir=[selffullFileName:shortDir];
NSLog(@"fulldirectory:%@",fullDir);
if(![fileManagerfileExistsAtPath:fullDir]){
[fileManagercreateDirectoryAtPath:fullDirwithIntermediateDirectories:YESattributes:nilerror:nil];
}
}
NSString*file=[selffullFileName:fileName];
NSLog(@"fullfilename:%@",file);
//filenotexistsorwanttooverwriteit
if(shouldOverwrite||![fileManagerfileExistsAtPath:file]){
BOOLsuc=[fileManagercreateFileAtPath:filecontents:nilattributes:nil];
NSLog(@"createfile(%@)%@",file,suc?@"successfully":@"failed");
}
}
@end
使用方法:
导入头文件:
#import"FZEasyFile.h"
判断地址是否已存在
[EasyFileisFileExists:@"my/file/path/info.txt"]
创建
[EasyFilecreateFile:"my/file/path/info.txt"overwrite:NO];
写入文件中:拼接和覆盖写入
[FZEasyFilewriteFile:"my/file/path/info.txt"contents:[@"a"dataUsingEncoding:NSUTF8StringEncoding]append:NO]; [FZEasyFilewriteFile:"my/file/path/info.txt"contents:[@"b"dataUsingEncoding:NSUTF8StringEncoding]append:YES];
Afterthesecallingthecontentofthefileis"ab".
删除文件
[FZEasyFileremoveFile:"my/file/path/info.txt"]; [FZEasyFileremoveFile:"my/file/path"];
获取绝对路径(实际存储路径)
NSString*fullName=[EasyFilefullFileName:"my/file/path/info.txt"];
转换
Aftergettingthefullname,youcanpassittootherAPI,suchasNSInputStream:
NSInputStream*input=[NSInputStreaminputStreamWithFileAtPath:fullName];
相关文章推荐
- iOS xxx.pch
- nagios监控iptables状态
- 关于ios对rtsp格式的流媒体支持的一些官方说明
- IOS xib局部界面 & 运用下载实例
- iOS开发路线简述
- iostart命令
- iOS view和viewController的生命周期
- iOS 系统中,H.264 视频流可以硬件解码吗? 具体如何实现?
- iOS开发者帐号申请指南
- 真机iOS 系统升级后xcode不能进行真机调试
- ios自动布局使用代码添加约束
- iOS设备方向控制
- iOS内存管理小总结
- 编译 vlc for ios VLC for iOS 2.3.0
- iOS开发多线程篇—GCD介绍
- alipay iOS SDK
- iOS 开发常用开源库,提升开发效率
- ios隐藏tablewbar
- iOS的Socket开发基础
- iOS应用推到后台继续执行