iOS_计算缓存文件大小和清除缓存

//获得缓存路径
self.cachesPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).lastObject;

/***********************   缓存管理  ***********************/
#pragma mark 单个文件的大小
+ (long long)fileSizeAtPath:(NSString *)filePath {
    //创建文件管理对象
    NSFileManager* manager = [NSFileManager defaultManager];
    //判断该文件是否存在
    if ([manager fileExistsAtPath:filePath]){
        //返回该文件大小
        return [[manager attributesOfItemAtPath:filePath error:nil] fileSize];
    }
    return 0;
}
#pragma mark 遍历文件夹获得文件夹大小,返回多少M
+ (CGFloat)folderSizeAtPath:(NSString *)folderPath {
    //创建文件管理对象
    NSFileManager *manager = [NSFileManager defaultManager];
    //判断该文件是否存在
    if (![manager fileExistsAtPath:folderPath])
        return 0;
    //快速枚举对象
    NSEnumerator *childFilesEnumerator = [[manager subpathsAtPath:folderPath] objectEnumerator];
    NSString *fileName;
    long long folderSize = 0;
    //遍历该文件下的文件
    while ((fileName = [childFilesEnumerator nextObject]) != nil){
        //各个文件路径
        NSString *fileAbsolutePath = [folderPath stringByAppendingPathComponent:fileName];
        folderSize += [self fileSizeAtPath:fileAbsolutePath];
    }
    return folderSize / (1024.0*1024.0);
}

#pragma mark 清理缓存文件
+ (void)clearCache:(NSString *)path {
    //创建文件管理对象
    NSFileManager *fileManager = [NSFileManager defaultManager];
    //判断该文件是否存在
    if ([fileManager fileExistsAtPath:path]) {
        //获得子文件名
        NSArray *childerFiles = [fileManager subpathsAtPath:path];
        //遍历子文件路径数组
        for (NSString *fileName in childerFiles) {

            NSString *absolutePath = [path stringByAppendingPathComponent:fileName];
            //删除子文件
            [fileManager removeItemAtPath:absolutePath error:nil];
        }
    }

     //这是SDWebImage里的方法, 创建单例并调用清除图片方法
    [[SDImageCache sharedImageCache] cleanDisk];

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫小言mo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值