zoukankan      html  css  js  c++  java
  • Xcode计算缓存文件大小和清除缓存

    //获得缓存路径
    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];
    
    }


  • 相关阅读:
    Asp.net中导出Excel文档(Gridview)
    以太坊难度炸弹是什么?极大抑制矿工继续以POW方式挖矿!
    Solidity语言基础 和 Etherum ERC20合约基础
    BCH/BSV coin split troubleshooting
    比特币学习-Transaction的locktime属性
    在BCH硬分叉后防止重放攻击-2
    在BCH硬分叉后防止重放攻击-1
    区块链硬分叉-软分叉简单了解
    BTC和BCH 区别和联系?
    BCHABC/BCHSV的矛盾所在
  • 原文地址:https://www.cnblogs.com/moxiaoyan33/p/5309254.html
Copyright © 2011-2022 走看看