第一种实现也是最便捷的方法:
SDWebImage自带缓存计算和清理缓存方法!我们可以把要缓存的文件都放在这个SDWebImage缓存图片的路径下面!
//获取缓存多大
SDImageCache *saImage = [SDImageCache sharedImageCache];
bufferLabel.text = [NSString stringWithFormat:@"%.2fM",saImage.getSize/1024./1024.];
//清理缓存
[[SDImageCache sharedImageCache] clearDiskOnCompletion:nil];
[[SDImageCache sharedImageCache] clearMemory];//可有可无
第二种:自己计算某个文件的大小,逐渐累加:
__block NSUInteger size = 0; dispatch_sync(self.ioQueue, ^{ NSDirectoryEnumerator *fileEnumerator = [_fileManager enumeratorAtPath:self.diskCachePath]; for (NSString *fileName in fileEnumerator) { NSString *filePath = [self.diskCachePath stringByAppendingPathComponent:fileName]; NSDictionary*attrs = [[NSFileManager defaultManager] attributesOfItemAtPath:filePath error:nil];
size += [attrs fileSize];
}
});
//清理某文件缓存
[_fileManager removeItemAtPath:self.diskCachePath error:nil];
[_fileManager createDirectoryAtPath:self.diskCachePath
withIntermediateDirectories:YES
attributes:nil
error:NULL];
网友评论