您的位置:首页 > 移动开发 > IOS开发

iOS 利用FZEasyFile本地保存 和 常规保存

2015-07-14 18:10 337 查看
1、常规保存(较麻烦)

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];




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: