前言:
本篇介绍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]]; }); }); }]; }
版权声明:程序员胖胖胖虎阿 发表于 2022年11月4日 下午3:40。
转载请注明:Sagit.Framework For IOS 开发框架入门教程8:硬盘缓存STFile | 胖虎的工具箱-编程导航
转载请注明:Sagit.Framework For IOS 开发框架入门教程8:硬盘缓存STFile | 胖虎的工具箱-编程导航
相关文章
暂无评论...