导航菜单
首页 >  stfile  > Sagit.Framework For IOS 开发框架入门教程8:硬盘缓存STFile

Sagit.Framework For IOS 开发框架入门教程8:硬盘缓存STFile

前言:

本篇介绍STFile,硬盘相关的读写操作。

1、STFile硬盘缓存的介绍:

 

 IOS的硬盘存取,内部是个沙盒,所以文件的目录较多,应用也较多。

不同的目录,有不同的用途,基本的定义如下:

//!用于存档数据到plist文件中,默认存档沙盒的Library/Cache目录(iTunes不会备份此目录,此目录下文件不会在应用退出删除。一般存放体积比较大,不是特别重要的资源,比如缓存数据。缓存数据在设备低存储空间时可能会被删除。)@interface STFile : NSObject//!对应沙盒的Home目录(主目录)@property (nonatomic,retain) STFile* Home;//!对应沙盒的Document目录:用于存储用户数据,该目录下的所有文件会进行iCloud或iTunes备份@property (nonatomic,retain) STFile* Document;//!对应沙盒的Libaray目录(该路径下的文件夹,除Caches以外,都会被iTunes备份。)@property (nonatomic,retain) STFile* Libaray;//!对应沙盒的Tmp目录(目录用于存放临时文件,APP重新启动时会清除这个路径下的文件。该路径下的文件不会被iTunes备份。一般用来保存临时文件,比如:相机拍摄完成时的照片视频都会被暂时保存到这个路径。)@property (nonatomic,retain) STFile* Temp;//!存档系统配置信息,对应沙盒的Tmp目录 Library/Preferences(包含应用程序的偏好设置文件。NSUserDefaults就是默认存放在此文件夹下面。)@property (nonatomic,retain)NSUserDefaults* Setting;//!存档的文件名(plist)。@property (readonly,nonatomic,copy) NSString* fileName;+ (instancetype)share;//!获取文件的大小(MB)- (CGFloat)size;//!清除所有文件缓存- (void)clear:(void(^)(BOOL success))block;//!设置文件缓存- (void)set:(NSString*)key value:(id)value;//!获取文件缓存- (id)get:(NSString*)key;//!移除文件缓存- (void)remove:(NSString*)key;@end

 

操作模式和内存操作基本一致。

然后多了几个目录指定,可以指定操作的目录(默认操作的是Cache目录)

2、基本的使用方法:

STFile在Sagit全局对象里定义了单例,所以调用方式的起步方法是:Sagit.File 开头。

如果是操作Cache目录,直接[Saget.File get:@"xxx"];

如果要操作其它目录,则指定目录后再操作。

 

 文件操作和内存操作其它一致。

多了一个获取文件夹大小,用于清空缓存,参考代码如下:

-(void)cleanCache:(UITableViewCell*)cell{[[cell.textLabel text:@"清除缓存"] onClick:^(id view) {[Sagit.File clear:^(BOOL success) {if (success){[Sagit.File.Temp clear:nil];[self.msgBox prompt:@"清除成功!"];}else {[self.msgBox prompt:@"清除完成!"];}[cell.accessoryView stValue:@"0M"];}];}];[[[UILabel new] text:@"正在计算大小..."] block:nil on:^(UILabel* label) {[[[[label font:24] textColor:@"#555555"] textAlignment:NSTextAlignmentRight] sizeToFit];cell.accessoryView=label;dispatch_async(dispatch_get_global_queue(0, 0), ^{CGFloat size = Sagit.File.size;CGFloat tempSize=Sagit.File.Temp.size;dispatch_sync(dispatch_get_main_queue(), ^{[label text : [NSString stringWithFormat:@"%.2fM", size+tempSize]];});});}];}

 

相关推荐: