清除缓存功能的实现代码

缓存文件存储在沙盒文件夹Caches中,实现清除缓存,主要就是实现找到文件 - - 删除文件(其中涉及到计算文件大小)

以下是实现清除缓存的主要代码

//获取缓存路径

- (NSString *)getCache{

NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];

NSLog(@"%@",cachePath);

return cachePath;

}

//获取文件夹大小

- (CGFloat)folderSizeAtPath{

//创建文件管理器

NSFileManager *manager = [NSFileManager defaultManager];

//获取文件夹路径

NSString *folderPath = [self getCache];

//如果缓存文件不存在,就返回0

if (![manager fileExistsAtPath:folderPath]) {

return 0;

}

//如果缓存文件存在就计算缓存文件的大小

NSEnumerator *childFilesEnumerator = [[manager subpathsAtPath:folderPath] objectEnumerator];//从缓存路径中的文件数组得到枚举器

NSString *fileName = nil;//定义一个空的文件名,用来获取枚举器中的文件名

long long folderSize = 0;//定义并初始化文件大小为0

while ((fileName = [childFilesEnumerator nextObject]) != nil) {

//得到单个文件的绝对路径

NSString *fileAbsolutePath = [folderPath stringByAppendingPathComponent:fileName];

//定义单个文件变量并初始化为0

float singleFileSize = 0.0;

//如果该单个文件存在,获取单个文件的大小

if ([manager fileExistsAtPath:fileAbsolutePath]) {

//attributesOfItemAtPath:获取文件的属性

singleFileSize = [[manager attributesOfItemAtPath:fileAbsolutePath error:nil] fileSize];

}

folderSize += singleFileSize;

}

return folderSize;

}

//清除缓存

- (void)clearCache{

NSFileManager *manager = [NSFileManager defaultManager];

NSString *floderPath = [self getCache];

if ([manager fileExistsAtPath:floderPath]) {

NSArray *childFiles = [manager subpathsAtPath:floderPath];

for (NSString *fileName in childFiles) {

NSString *absolutePath = [floderPath stringByAppendingPathComponent:fileName];

[manager removeItemAtPath:absolutePath error:nil];

}

}

[[SDImageCache sharedImageCache] cleanDisk];//因为我使用了SDWebImage这个第三方类,所以用这个类自带的方法实现

}

时间: 2024-12-07 06:25:20

清除缓存功能的实现代码的相关文章

iOS清除缓存功能开发

在APP开发中,大量的图片或消息占用系统内存,造成一堆垃圾信息,所以开发清除缓存功能就显得必不可少了. 代码段1:获取文件的大小 - (long long) fileSizeAtPath:(NSString*) filePath{ NSFileManager* manager = [NSFileManager defaultManager]; if ([manager fileExistsAtPath:filePath]){ return [[manager attributesOfItemAt

Android开发记录20-获取缓存大小和清除缓存功能

Android开发记录20-获取缓存大小和清除缓存功能 转载请注明:IT_xiao小巫 博客地址:http://blog.csdn.net/wwj_748 前言 本篇博客要给大家分享的如何获取应用缓存的大小和清除缓存的功能,我们知道我们应用当中经常会产生一些数据,比如图片的缓存,数据库文件,配置文件等等.我们开发产品的时候,可能会有这样的一个需求清除应用内缓存的数据,可以让用户选择删除应用内产生的数据,这也是比较人性化的设计点.例如笔者参与开发的一款产品的设置界面就提供了清除缓存的功能,如下图所

Android记录20-获取缓存大小和清除缓存功能

Android开发记录20-获取缓存大小和清除缓存功能 转载请注明:IT_xiao小巫 博客地址:http://blog.csdn.net/wwj_748 前言 本篇博客要给大家分享的如何获取应用缓存的大小和清除缓存的功能,我们知道我们应用当中经常会产生一些数据,比如图片的缓存,数据库文件,配置文件等等.我们开发产品的时候,可能会有这样的一个需求清除应用内缓存的数据,可以让用户选择删除应用内产生的数据,这也是比较人性化的设计点.例如笔者参与开发的一款产品的设置界面就提供了清除缓存的功能,如下图所

Apicloud——关于获取缓存与清除缓存功能、字节转换

2019-01-02  13:58:15 清除缓存功能很常见,Apicloud中有现成的方法,整理记录一下: 其中字节转换部分,很合用. 以后会整理一份不仅限Apicloud中使用的. 1 <!doctype html> 2 <html> 3 4 <head> 5 <meta charset="utf-8"> 6 <meta name="viewport" content="maximum-scale=

android 清除缓存功能

本应用数据清除管理器 DataCleanManager.java   是从网上摘的 忘了 名字了 对不住了 载入一个webview   产生缓存  众所周知的webview是产生缓存的主要原因之中的一个 webview载入之后   点击button  查询缓存  然后清除缓存  再查询缓存  能够看到  缓存确实被清除了 或者咋webview载入之后  点击button查询缓存  然后去设置里面应用程序  看程序的缓存是不是一样的  答案肯定是一样 以下是代码 DataCleanManager.

Android清除缓存功能来实现

我们都知道在Android的设置->应用程序中能够查看应用程序的相关信息,当中有一个功能是清除缓存. 如图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FuZ2JpYW9ob21l/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" > 怎么实现这些功能呢,从Android的setting源代码中能够得到相关信息. 实现例如以下: J

获取缓存大小和清除缓存功能

转载:http://blog.csdn.net/wwj_748/article/details/42737607 1 /** 2 * 主要功能有清除内/外缓存,清除数据库,清除sharedPreference,清除files和清除自定义目录 3 */ 4 import android.content.Context; 5 import android.os.Environment; 6 import android.text.TextUtils; 7 import java.io.File; 8

shiro 退出 清除缓存

shiro是一个被广泛使用的安全层框架,通过xml配置方式与spring无缝对接,用户的登陆/退出/权限控制/Cookie等管理系统基础功能交给shiro来管理. 一般,在JavaWEB管理平台系统时,用户退出系统之前没需要清除用户数据和关闭连接,防止垃圾数据堆积,shiro提供了LogoutFilter过滤器,我们可以通过LogoutFilter的preHandle方法,实现清除缓存功能. 页面代码: <div class="item" style="float:ri

实现高端报表工具的缓存功能

高端的报表工具都提供了缓存机制,避免报表重复计算带来额外性能开销,节省CPU资源,实现结果共享.报表在计算过程中,大部分时间(85%以上)都消耗在数据源(准备)上,集算器可以用简单的方法实现数据源的缓存复用,让普通报表工具也拥有缓存机制. 实现数据源缓存有两个关键,根据报表不同的参数和宏生成不同的报表缓存:缓存超时时间需要重新计算.下面以实例说明. 报表描述 根据销售记录表计算各销售人员本年销售额和上年销售额,及其增长率,统计客户数与大客户数(订单金额超过10000).报表样式如下: 该报表供公