封装计算缓存数据大小

我们在很多软件里面都可以看到一个功能就是清除缓存数据的大小。
下面我给大家截了张图


Snip20160904_9.png

我们需要获取软件的沙盒路径,一般我们都是将缓存放入到Library/Caches文件夹下面
有时候我们会在Library/Caches文件件下面建立一些我们自己需要缓存的文件夹或者是文件。

第一步:弄一个分类,扩展一个计算文件大小的功能


Snip20160904_7.png

Snip20160904_8.png

第二步:在.h文件里面提供出一个方法方便外面调用


Snip20160904_5.png
- (NSInteger)fileSize;

第三步:在.m文件里面实现方法


Snip20160904_6.png
- (NSInteger)fileSize
{
    // 文件管理者
    NSFileManager *mgr = [NSFileManager defaultManager];
    // 是否为文件夹
    BOOL isDirectory = NO;
    // 这个路径是否存在
    BOOL exists = [mgr fileExistsAtPath:self isDirectory:&isDirectory];
    // 路径不存在
    if (exists == NO) return 0;
    
    if (isDirectory) { // 文件夹
        // 总大小
        NSInteger size = 0;
        // 获得文件夹中的所有内容
        NSDirectoryEnumerator *enumerator = [mgr enumeratorAtPath:self];
        for (NSString *subpath in enumerator) {
            // 获得全路径
            NSString *fullSubpath = [self stringByAppendingPathComponent:subpath];
            // 获得文件属性
            size += [mgr attributesOfItemAtPath:fullSubpath error:nil].fileSize;
        }
        return size;
    } else { // 文件
        return [mgr attributesOfItemAtPath:self error:nil].fileSize;
    }
}

备注:

如果有不足或者错误的地方还望各位读者批评指正,可以评论留言,笔者收到后第一时间回复。

QQ/微信:2366889552 /lan2018yingwei。

简书号:凡尘一笑:[简书]

http://www.jianshu.com/users/0158007b8d17/latest_articles

感谢各位观众老爷的阅读,如果觉得笔者写的还凑合,可以关注或收藏一下,不定期分享一些好玩的实用的demo给大家。

文/凡尘一笑(简书作者)

著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,761评论 25 709
  • IOS缓存机制详解 资料均来自互联网,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法...
    winsonink阅读 2,396评论 3 14
  • 我们高中姐妹团共有七个人,老祖,便是其中一个,我们几个有一个群,时不时的冒个泡,证明各自都还活着。 昨晚老祖跟...
    今一阅读 754评论 0 1
  • 今天是2017年2月10日,距离情人节还有4天的时间,你找到和你一起过节的人了吗? 回想起去年的情人节,我还不是一...
    一枝苗阅读 3,072评论 16 28
  • 我跟蔓玥走到古街的时候,两个人不约而同地打了个饱嗝,胃里甜腻腻的地方菜经过时间的酝酿和路途的颠簸开始发酵。我可以看...
    叁肆伍Zoe阅读 359评论 0 1