通常,在我们加载图片的时候,一般都会做缓存处理,像SDWebImage,YYWebImage都是有的,但是有缓存,当然也需要清理缓存,如果没有这个功能的话,显得app太没人性化。

获取总的缓存大小

// 获取某个路径下是文件大小

+ (CGFloat)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;

}

// 获取总的缓存的大小

+ (CGFloat)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 +=[ClearCache fileSizeAtPath:absolutePath];

}

return folderSize;

}

return 0;

}

清除缓存

// 清理缓存

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

NSFileManager *fileManager=[NSFileManager defaultManager];

if ([fileManager fileExistsAtPath:path]) {

NSArray *childerFiles=[fileManager subpathsAtPath:path];

for (NSString *fileName in childerFiles) {

/**

* 此处,也可以做 if () 判断是否不需要删除某些文件

*/

NSString *absolutePath=[path stringByAppendingPathComponent:fileName];

[fileManager removeItemAtPath:absolutePath error:nil];

}

}

// 这是用到 YYWebImageManager 中 YYImageCache 单独需要删除的

// [[YYWebImageManager sharedManager].cache.diskCache removeAllObjects];

// [[YYWebImageManager sharedManager].cache.memoryCache removeAllObjects];

}

然后直接调用就OK啦

[CacheFileManager clearCache:YOUR_PATH_CACHE];

self.contentLabel.text = [NSString stringWithFormat:@"%.1lf M",[CacheFileManager folderSizeAtPath:YOUR_PATH_CACHE]];

同时附上 磁盘总空间大小 和 磁盘可用空间大小

// 磁盘总空间大小

+ (CGFloat)diskOfAllSizeMBytes {

CGFloat size = 0.0;

NSError *error;

NSDictionary *dic = [[NSFileManager defaultManager] attributesOfFileSystemForPath:NSHomeDirectory() error:&error];

if (error) {

#ifdef DEBUG

NSLog(@"error: %@", error.localizedDescription);

#endif

}else{

NSNumber *number = [dic objectForKey:NSFileSystemSize];

size = [number floatValue]/1024/1024;

}

return size;

}

// 磁盘可用空间大小

+ (CGFloat)diskOfFreeSizeMBytes {

CGFloat size = 0.0;

NSError *error;

NSDictionary *dic = [[NSFileManager defaultManager] attributesOfFileSystemForPath:NSHomeDirectory() error:&error];

if (error) {

#ifdef DEBUG

NSLog(@"error: %@", error.localizedDescription);

#endif

}else{

NSNumber *number = [dic objectForKey:NSFileSystemFreeSize];

size = [number floatValue]/1024/1024;

}

return size;

}

ios html清除缓存图片,iOS,如何清理缓存的图片相关推荐

  1. android清理缓存实现,android之清理缓存实现

    /** * 获取app的缓存大小 * 1. 录制的视频/storage/emulated/0/xueliangapp/video/1573972925136.mp4 * 2. 录制的音频/storag ...

  2. Mac重启清理缓存会怎么样 mac清理缓存怎么清理

    众所周知,Mac电脑有着流畅的操作系统,因此,很多用户都会选择使用Mac电脑办公.随着日常使用,系统缓存数据越来越大,某些Mac电脑(尤其是小内存版本的Mac电脑)可能会出现"系统" ...

  3. android清理缓存功能吗,Android清理缓存功能实现

    我们都知道在Android的设置->应用程序中可以查看应用程序的相关信息,其中有一个功能是清除缓存.如图: 怎么实现这些功能呢,从Android的setting源码中可以得到相关信息. 实现如下 ...

  4. ios html清除缓存,iOS开发之1行代码实现缓存计算及清除缓存

    话不多说,直接撸代码 // // gzhCache.h // cache // // Created by 郭志贺 on 2020/5/27. // Copyright © 2020 郭志贺. All ...

  5. 苹果微信浏览器html缓存图片吗,h5清理微信浏览器网页缓存

    前言: 缓存这个问题的出现,真真切切的感受到微信浏览器这鬼东西对前端程序员充满了恶意,捋捋自己的发型,甚是恐慌(顿时有种想转php的冲动,有木有). 解决方案: 出现缓存问题导致用户出现很多车祸现场( ...

  6. linux缓存buffer,【Linux】清理缓存buffer/cache

    运行sync将dirty的内容写回硬盘 sync 通过修改proc系统的drop_caches清理free的cache echo 3 > /proc/sys/vm/drop_caches ech ...

  7. Django实现Linux服务端快速清理缓存

    由于Django在执行过程中缓存会占用大量内存导致服务器内存不够用,严重的时候可能会发生宕机.网页访问卡顿,因此定义的清理缓存还是有必要的,也可以使用定时任务自动清理,这里介绍如何使用django-e ...

  8. linux中清理缓存命令,linux清理缓存的命令

    查看缓存的命令 free -m 清理缓存的命令 echo 1 > /proc/sys/vm/drop_caches echo 2 > /proc/sys/vm/drop_caches ec ...

  9. Hibernate缓存原理与策略 Hibernate缓存原理:

    Hibernate缓存原理: 对于Hibernate这类ORM而言,缓存显的尤为重要,它是持久层性能提升的关键.简单来讲Hibernate就是对JDBC进行封装,以实现内部状态的管理,OR关系的映射等 ...

  10. ios html清除缓存图片,iOS利用SDWebImage实现缓存的计算与清理

    一般我们项目中的缓存一般分为2大块:一个是自己缓存的一些数据;还有一个就是我们使用的SDWebImage这个第三方库给我们自动缓存的图片文件缓存了. 实际项目中会配合设置里去清理缓存, 效果截图如下: ...

最新文章

  1. 21年最新Python面试题及答案汇总详解(上)
  2. shiro源码分析(四)具体的Realm
  3. Waymo向客户发邮件,宣布纯无人驾驶汽车即将上路
  4. Linux xargs命令
  5. 667. Beautiful Arrangement II
  6. 代码版本管理 GitLab介绍
  7. 程序员笔记|常见的Spring异常处理
  8. cookie分号后面没有值_浏览器Cookie介绍
  9. 服务器中anaconda如何修改环境变量,手动添加anaconda3到环境变量中的方法
  10. mysql数据库binlog日志截断报错,导致mysql主从同步失败故障排查
  11. 解决手机浏览器顶部下拉出现网页源或刷新的问题
  12. ISCROLL4 简述
  13. wps 将html转为word,用WPS快速将网页内容转换为WORD文档
  14. 建站之星检测不到mysql_建站之星安装,建站之星安装教程 | 帮助信息-动天数据...
  15. linux下python网络编程框架-twisted安装手记,linux下Python网络编程框架-Twisted安装
  16. Vue Error-报错信息:Syntax Error: Assigning to rvalue.
  17. 基于MATLAB的拼图游戏设计(图文详解,附完整代码)
  18. HDU3085 Nightmare Ⅱ —— 双向BFS + 曼哈顿距离
  19. Spring的init-method和destory-method
  20. 【安装】wsl ubuntu18.04安装libc6:i138报错E: Unable to locate package libc6-i386及解决

热门文章

  1. vue导入html登陆页,Vue 实现 登陆后打开主页面(登陆组件 + 主页面组件)
  2. java byte 转 c_C 和 Java 之间的byte数据的转换问题
  3. latex中report目录_LaTeX目录格式控制
  4. LPCTSTR和CString的关系
  5. java记录登陆时间_Spring security如何实现记录用户登录时间功能
  6. mlse均衡器matlab,基于LMS自适应均衡器matlab仿真.doc
  7. 字符集_第07期:有关 MySQL 字符集的 SQL 语句
  8. linux怎么才能算telnet成功_怎么表白才算成功呢
  9. H5之audio标签放音兼容所有浏览器方法
  10. 原生JS封装ajax以及request