封装计算缓存数据大小
我们在很多软件里面都可以看到一个功能就是清除缓存数据的大小。
下面我给大家截了张图
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; } }