美文网首页
iOS开发-清理缓存功能的实现

iOS开发-清理缓存功能的实现

作者: 你相信奇迹么 | 来源:发表于2016-07-15 09:21 被阅读0次

    移动应用在处理网络资源时,一般都会做离线缓存处理,其中以图片缓存最为典型。

    今天介绍的离线缓存功能的实现,主要分为缓存文件大小的获取、删除缓存文件的实现。

    路径宏#define LHCCachesPath [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]

    计算文件大小-(float)fileSizeAtPath:(NSString*)path{

    NSFileManager*fileManager=[NSFileManagerdefaultManager];

    if([fileManagerfileExistsAtPath:path]){

    longlongsize=[fileManagerattributesOfItemAtPath:patherror:nil].fileSize;

    returnsize/1024.0/1024.0;

    }

    return0;

    }

    计算目录大小

    - (CGFloat)floatWithPath:(NSString*)path{

    NSFileManager*fileManager=[NSFileManagerdefaultManager];

    floatfolderSize;

    if([fileManagerfileExistsAtPath:path]) {

    NSArray*childerFiles = [fileManagersubpathsAtPath:path];

    for(NSString*fileNameinchilderFiles) {

    NSString*fullPath = [pathstringByAppendingPathComponent:fileName];

    folderSize += [selffileSizeAtPath:fullPath];

    }

    }

    returnfolderSize;

    }

    计算好文件目录大小之后赋值给self.garbage

    - (void)getFolderSizeBk

    {

    floatfolderSize = [self floatWithPath:LHCCachesPath];

    self.garbage= [NSStringstringWithFormat:@"%.2fM",folderSize];

    [self.tableViewreloadData];

    }

    清除缓存大小,这个是我的写的alert的点击事件

    - (void)alertView:(UIAlertView*)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

    {

    if(buttonIndex) {

    NSString*path =LHCCachesPath;

    NSFileManager*fileManager=[NSFileManagerdefaultManager];

    if([fileManagerfileExistsAtPath:path]) {

    NSArray*childerFiles=[fileManagersubpathsAtPath:path];

    for(NSString*fileNameinchilderFiles) {

    NSString*absolutePath=[pathstringByAppendingPathComponent:fileName];

    [fileManagerremoveItemAtPath:absolutePatherror:nil];

    }

    }

    [selfgetFolderSizeBk];

    }

    }

    以上就是计算缓存和清除缓存的代码了,附上几张图

    相关文章

      网友评论

          本文标题:iOS开发-清理缓存功能的实现

          本文链接:https://www.haomeiwen.com/subject/ddlyjttx.html