zoukankan      html  css  js  c++  java
  • 如何利用时间差让cache目录下的文件自动清除

    前言:

      在iOS开发中,我们经常会缓存一些从网络获取的图片来使得用户手机流量得以节约,但是随着时间的增长,我们有时候需要清理用户的缓存数据,来使得APP的容量不能太大,由其是一些8G、16G的用户,从而使得用户体验比较差,用户体验差的后果,可能就会删除你的应用。那么如何自动管理清理这些cache呢?

    步骤:

        1.首先先要获取缓存目录

    NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];

        

        2.获取当前文件目录的属性

    // 获取目录当前所有属性
        NSDictionary *cacheDict = [[NSFileManager defaultManager] attributesOfItemAtPath:cachePath error:nil];

        

        3.通过打印可以得出所有的Key,很明显第一个创建时间就是我们想要的

        

        4.获取当前时间,并且和创建时间进行比较

    // 获取创建日期
        NSDate *oldDate = cacheDict[NSFileCreationDate];
        //获取当前日期
        NSDate *date = [NSDate date];
        // 算两个时间差,这个是以秒为单位的,NSTimeInterval其实就是一个double
        NSTimeInterval time = [date timeIntervalSinceDate:oldDate];

        

        5.把时间差转换为天数

    int day = (int)time / (3600 * 24);

        

        6.根据需求删除目录

    //    删除文件
        [[NSFileManager defaultManager] removeItemAtPath:<#(NSString *)#> error:<#(NSError *__autoreleasing *)#>];
  • 相关阅读:
    C#分部类和分部方法的使用
    C# 关于线程锁lock的使用方法
    Halcon标定流程及注意事项
    C#如何将ListView中的数据导出到Excel中
    Application.DoEvents()的作用
    (C#)使用队列(Queue)解决简单的并发问题
    C#的委托 VS C++的指针
    转载——卷积神经网络(CNN)基础入门介绍
    Linux启动详细过程(开机启动顺序)
    Nginx https 证书配置
  • 原文地址:https://www.cnblogs.com/samyangldora/p/4634662.html
Copyright © 2011-2022 走看看