封装计算缓存数据大小

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


封装计算缓存数据大小_第1张图片
Snip20160904_9.png

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

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


封装计算缓存数据大小_第2张图片
Snip20160904_7.png

封装计算缓存数据大小_第3张图片
Snip20160904_8.png

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


封装计算缓存数据大小_第4张图片
Snip20160904_5.png
- (NSInteger)fileSize;

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


封装计算缓存数据大小_第5张图片
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给大家。

文/凡尘一笑(作者)

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

你可能感兴趣的:(封装计算缓存数据大小)