zoukankan      html  css  js  c++  java
  • 清除缓存时常用

    /**

     获取缓存路径

     @return

     */

    - (NSString *)getCachesPath{

        // 获取Caches目录路径

        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask,YES);

        NSString *cachesDir = [paths objectAtIndex:0];

    //    NSString *filePath = [cachesDir stringByAppendingPathComponent:@"myCache"];

        return cachesDir;

    }

    /**

     计算单个文件的大小

     @param filePath

     @return

     */

    - (long long)fileSizeAtPath:(NSString*)filePath{

        NSFileManager* manager = [NSFileManager defaultManager];

        if ([manager fileExistsAtPath:filePath]){

            return [[manager attributesOfItemAtPath:filePath error:nil] fileSize];

        }

        return 0;

    }

    /**

     计算文件夹的大小

      @param folderPath

     @return

     */

    - (NSString *)getCacheSizeAtPath:(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];

        }

        

        NSString *cacheStr = @"";

        if (folderSize/(1024.0*1024.0)>=1) {

            cacheStr = [NSString stringWithFormat:@"%0.2fMb",folderSize/(1024.0*1024.0)];

        }else if (folderSize/(1024.0*1024.0)>0){

            cacheStr = [NSString stringWithFormat:@"%lldkb",folderSize/1024];

        }else {

            cacheStr = @"0kb";

        }

        return cacheStr;

    }

    /**

     清除缓存文件

     @param path

     */

    - (void)clearCacheAtPath:(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];

            }

        }

    }

    //        清除缓存的转圈动画

            UIActivityIndicatorView *loading = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];

            loading.frame = CGRectMake(dataLabel.frame.size.width-20, 5, 20, 20);

            [dataLabel addSubview:loading];

            [loading startAnimating];

    //        __block typeof(self)  weakSelf;

            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

                [loading stopAnimating];

                [_table reloadSections:[NSIndexSet indexSetWithIndex:1] withRowAnimation:UITableViewRowAnimationNone];

            });

  • 相关阅读:
    锚点的用法
    通配符的匹配很全面, 但无法找到元素 'context:component-scan' 的声明
    transient简介
    background-position和position
    推荐比较好的前端博客
    margin和 padding 以及 float :left和float :right的介绍
    poi解析excel(含有公式)
    spring aop做什么介绍
    Java再学习——Executor,ExecutorService,ScheduledExecutorService与Executors
    Java再学习——CopyOnWrite容器
  • 原文地址:https://www.cnblogs.com/Panthera-leo/p/6343445.html
Copyright © 2011-2022 走看看