美文网首页网络相关iOS备忘录
iOS缓存清理功能的实现

iOS缓存清理功能的实现

作者: 蓝色的雪啦 | 来源:发表于2016-07-07 14:51 被阅读490次

iOS缓存清理功能的实现

MAR21ST,20162:31 PM

移动应用在处理网络资源时,一般都会做离线缓存处理,其中以图片缓存最为典型,其中很流行的离线缓存框架为SDWebImage。

但是,离线缓存会占用手机存储空间,所以缓存清理功能基本成为资讯、购物、阅读类app的标配功能。

今天介绍的离线缓存功能的实现,主要分为缓存文件大小的获取、删除缓存文件的实现。

获取缓存文件的大小

由于缓存文件存在沙箱中,我们可以通过 NSFileManager API 来实现对缓存文件大小的计算。

计算单个文件大小

```objc

+(float)fileSizeAtPath:(NSString *)path{

NSFileManager *fileManager=[NSFileManager defaultManager];

if([fileManager fileExistsAtPath:path]){

long long size=[fileManager attributesOfItemAtPath:path error:nil].fileSize;

return size/1024.0/1024.0;

}

return 0;

}

```

计算目录大小

```objc

+(float)folderSizeAtPath:(NSString *)path{

NSFileManager *fileManager=[NSFileManager defaultManager];

float folderSize;

if ([fileManager fileExistsAtPath:path]) {

NSArray *childerFiles=[fileManager subpathsAtPath:path];

for (NSString *fileName in childerFiles) {

NSString *absolutePath=[path stringByAppendingPathComponent:fileName];

folderSize +=[FileService fileSizeAtPath:absolutePath];

}

//SDWebImage框架自身计算缓存的实现

folderSize+=[[SDImageCache sharedImageCache] getSize]/1024.0/1024.0;

return folderSize;

}

return 0;

}

```

清理缓存文件

同样也是利用NSFileManager API进行文件操作,SDWebImage框架自己实现了清理缓存操作,我们可以直接调用。

+(void)clearCache:(NSString *)path{

NSFileManager *fileManager=[NSFileManager defaultManager];

if ([fileManager fileExistsAtPath:path]) {

NSArray *childerFiles=[fileManager subpathsAtPath:path];

for (NSString *fileName in childerFiles) {

//如有需要,加入条件,过滤掉不想删除的文件

NSString *absolutePath=[path stringByAppendingPathComponent:fileName];

[fileManager removeItemAtPath:absolutePath error:nil];

}

}

[[SDImageCache sharedImageCache] cleanDisk];

}]

相关文章

  • iOS开发-一句代码调用实现清理缓存功能

    iOS开发-清理缓存,将计算缓存,清理缓存封装成类方法,并将清理结果利用block方法实现返回,一键调用,轻松实现...

  • ios-清理缓存功能

    清理缓存示例: 现在各类App都必不可少有清理缓存和显示当前缓存这功能,下面代码是将此功能实现的封装. 实现方法:

  • iOS缓存清理功能的实现

    iOS缓存清理功能的实现 MAR21ST,20162:31 PM 移动应用在处理网络资源时,一般都会做离线缓存处理...

  • iOS中计算缓存大小并清除缓存

    记录一下iOS开发中的设置界面经常用到的清理缓存功能的代码实现。 一、流程介绍 缓存文件存到了沙盒...

  • iOS开发-清理缓存功能的实现

    参考文档: iOS开发-清理缓存功能的实现 沙盒中常用的几个路径: Document文件夹:用来保存应由程序运行时...

  • iOS开发-清理缓存功能的实现

    移动应用在处理网络资源时,一般都会做离线缓存处理,其中以图片缓存最为典型。 今天介绍的离线缓存功能的实现,主要分为...

  • iOS开发-清理缓存功能的实现

    移动应用在处理网络资源时,一般都会做离线缓存处理,其中以图片缓存最为典型,其中很流行的离线缓存框架为SDWebIm...

  • iOS开发-清理缓存功能的实现

    移动应用在处理网络资源时,一般都会做离线缓存处理,其中以图片缓存最为典型,其中很流行的离线缓存框架为SDWebIm...

  • Kingfisher清理缓存功能

    我们使用开源项目Kingfisher来实现图片缓存功能。计算图片缓存和清理图片缓存也是通过Kingfisher来实...

  • Android实现清理缓存功能

    有时候项目中需要清理一些缓存数据(如:图片缓存、网络数据缓存等),当然也要对SharedPreferences存储...

网友评论

  • 上冬十二:有demo吗兄弟
    难却却: 这个你看一下具体怎么实现的就行,其实也不用demo的

本文标题:iOS缓存清理功能的实现

本文链接:https://www.haomeiwen.com/subject/wrdljttx.html