博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 缓存的获取计算与清除归零
阅读量:7210 次
发布时间:2019-06-29

本文共 2431 字,大约阅读时间需要 8 分钟。

  hot3.png

1,获取路径并进行数据的拼接

//获取缓存- (void)caculatorSize{        NSString *cacheFilePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Library/Caches"];    NSFileManager* manager = [NSFileManager defaultManager];    _manager = manager;    if (![_manager fileExistsAtPath:cacheFilePath]){        NSLog(@"Null");    }    NSEnumerator *childFilesEnumerator = [[_manager subpathsAtPath:cacheFilePath] objectEnumerator];    NSString* fileName;    _fileName = fileName;    long long folderSize = 0;    while ((_fileName = [childFilesEnumerator nextObject]) != nil){                NSString* fileAbsolutePath = [cacheFilePath stringByAppendingPathComponent:_fileName];        _fileAbsolutePath = fileAbsolutePath;        folderSize += [[_manager attributesOfItemAtPath:fileAbsolutePath error:nil]fileSize];    }        CGFloat intg = [[SDImageCache sharedImageCache] getSize];    CGFloat sum = folderSize + intg;    NSString * currentVolum = [NSString stringWithFormat:@"%@",[self fileSizeWithInterge:sum]];    _currentVolum = currentVolum;       }

2,计算缓存,根据大小添加相应单位

//计算文件大小- (NSString *)fileSizeWithInterge:(CGFloat)size{    // 1k = 1024, 1m = 1024k    if (size < 1024) {// 小于1k        if (size <200){                        return [NSString stringWithFormat:@"%@B",@"0"];        }        return [NSString stringWithFormat:@"%ldB",(long)size];    }else if (size < 1024 * 1024){// 小于1m        CGFloat aFloat = size/1024;        return [NSString stringWithFormat:@"%.0fK",aFloat];    }else if (size < 1024 * 1024 * 1024){// 小于1G        CGFloat aFloat = size/(1024 * 1024);        return [NSString stringWithFormat:@"%.2fM",aFloat];    }else{        CGFloat aFloat = size/(1024*1024*1024);        return [NSString stringWithFormat:@"%.1fG",aFloat];    }}

3,清除缓存

//清除缓存- (void)cleanTheCaheForWebView{        NSString *cacheFilePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Library/Caches"];    NSEnumerator *childFilesEnumerator = [[_manager subpathsAtPath:cacheFilePath] objectEnumerator];    NSString *fileOne;    while ((fileOne = [childFilesEnumerator nextObject]) != nil){                NSString* fileAbsolutePath = [cacheFilePath stringByAppendingPathComponent:fileOne];        //过滤掉不想清除的文件        if ([fileAbsolutePath rangerOfString:@"JPUSH"].location != NSNotFound){         }else{                     [_manager removeItemAtPath:fileAbsolutePath error:nil];         }    }    }

 

转载于:https://my.oschina.net/Kuture/blog/733013

你可能感兴趣的文章
MySQL:procedure, function, cursor,handler
查看>>
委托的多种写法
查看>>
关于优酷视频代码播放的若干事情……
查看>>
异步与并行~List<T>是线程安全的吗?
查看>>
CentOS7安装mysql提示“No package mysql-server available.”
查看>>
gulp同步执行任务
查看>>
(轉貼) C++,C#,Java功能比較 (.NET) (C#) (C/C++)
查看>>
Dockerfile详解(三)
查看>>
【转】启动 Eclipse 弹出“Failed to load the JNI shared library jvm.dll”错误的解决方法!...
查看>>
Bellman - Ford, SPFA 学习笔记(含有负权的单源最短路径)
查看>>
(转)关于NAND flash的MTD分区与uboot中分区的理解
查看>>
遍历文件Java中遍历出指定目录中的所有文件
查看>>
[MSP430] 对MSP430单片机__delay_cycles精确延时的说明及改正
查看>>
52. 模版和设计元素——Lotus Notes的代码重用
查看>>
如何成为一名Top DevOps Engineer
查看>>
xml转成数组,原来这么简单!
查看>>
linux下oracle11g R2的启动与关闭监听、数据库
查看>>
C# 元数据描述
查看>>
浅谈神经网络算法
查看>>
[Angular 2] Using a Reducer to Change an Object's Property Inside an Array
查看>>