#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 - 计算caches文件夹大小

- (float)folderSizeAtPath:(NSString*)folderPath{

NSFileManager *manager = [NSFileManager defaultManager];

if (![manager fileExistsAtPath:folderPath]) {

return 0;

}

NSEnumerator *childFiles = [[manager subpathsAtPath:folderPath] objectEnumerator];

NSString *fileName;

long long folderSize = 0;

while ((fileName = [childFiles nextObject]) != nil) {

NSString *fileAbsolutePath = [folderPath stringByAppendingPathComponent:fileName];

folderSize += [self fileSizeAtPath:fileAbsolutePath];

}

self.cacheSize = folderSize / (1024.0 * 1024.0);

return self.cacheSize;

}

#pragma mark - 清除缓存的方法

+ (void)clearCache:(NSString *)path{

NSFileManager *manager = [NSFileManager defaultManager];

if ([manager fileExistsAtPath:path]) {

NSArray *childerFiles = [manager subpathsAtPath:path];

for (NSString *fileName in childerFiles) {

//如果有需要,加入条件,过滤掉不想删除的文件

NSString *absolutePath = [path stringByAppendingPathComponent:fileName];

[manager removeItemAtPath:absolutePath error:nil];

}

}

//这个是清除SDWebImage的缓存的,没有引用这个第三方类库的不用写

[[SDImageCache sharedImageCache] cleanDisk];

}

计算app内部缓存文件大小的更多相关文章

  1. 计算缓存文件大小、清除缓存的Cell

    计算缓存文件大小 - (void)getCacheSize { // 总大小 unsigned long long size = 0; // 获得缓存文件夹路径 NSString *cachesPat ...

  2. android 内部缓存器(手机自带的存储空间中的当前包文件的路径)

    关于Context中: 1. getCacheDir()方法用于获取/data/data/<application package>/cache目录 2. getFilesDir()方法用 ...

  3. 碰到一个在app内部浏览器锚点异常的问题

    最近在做一个文章评论的功能,其中一个需求是:在提交完评论后,需要跳转到位于页面底部的评论区域,正常情况下location.href=http://m.hostname.cn/article#comme ...

  4. 苹果拒绝App内部使用版本检测功能

    10.6 - Apple and our customers place a high value on simple, refined, creative, well thought through ...

  5. Android APP 内部捐赠实现(支付宝&微信)

    Android APP 内部捐赠实现(支付宝&微信) 目前支持 支付宝和 微信. 项目地址:https://github.com/didikee/AndroidDonate https://p ...

  6. android app内部更新适配到8.0

    app 内部跟新是app中必须要有的功能,在app出现改变时,app内部更新能以最快的速度将应用提升到最新版本. 步骤: 1.获取本地app的版本号 int versionCode = 0; try ...

  7. 重置 Launchpad 和更新APP图标缓存

    重置 Launchpad 方法一:在终端里粘贴 defaults write com.apple.dock ResetLaunchPad -bool true; killall Dock 方法二:在终 ...

  8. Xcode计算缓存文件大小和清除缓存

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

  9. 获取缓存文件大小并清理 By HL

    通常用于删除缓存的时,计算缓存大小 //单个文件的大小 - (long long) fileSizeAtPath:(NSString*) filePath{ NSFileManager* manage ...

随机推荐

  1. git常用命令<转>

    (转自)https://www.akii.org/git-concise-operating-tutorial.html git工作原理: 分布式,每个克隆或更新远程仓库的用户都拥有⼀一份最新的完整的 ...

  2. 查看linux系统版本

    1.查看内核版本 #cat /proc/version Linux version 2.6.18-164.el5 (mockbuild@x86-003.build.bos.redhat.com) (g ...

  3. HUD 1251 难题统计

    /* 这题倒是没啥难度 字典树可搞 但是吧 空间是个问题 开始写成这样 struct node { int next[27],sum[27]; bool over; }t[maxn]; 死活过不了 开 ...

  4. (转)C#读取文件路径

    //获取包含清单的已加载文件的路径或 UNC 位置. public static string sApplicationPath = Assembly.GetExecutingAssembly ( ) ...

  5. php访问方法外变量

    class Capture { private static $_CapSite = 222; function dd() { echo self::$_CapSite; } } $cc=new Ca ...

  6. redux-simple 简化版的redux

    作为react的粉丝,当然要吐槽一下react组件通信问题.react的单向数据流是组件通信的一大阻碍,只允许父组件向子组件传值,子组件向父组件传值只能通过父组件向子组件传递回调函数实现.如果在深层次 ...

  7. Qt 数据库创建表失败原因之数据库关键字

    本人数据库新手,在创建表时出现问题,最后经查证,找出问题所在.下面的程序是部分节选,在创建数据库表的时候,起先使用的L24的CreateDB,经测试,一直输出 Create testResult Fa ...

  8. 《Linux内核分析》 week5作业-system call中断处理过程

    一.使用gdb跟踪分析一个系统调用内核函数 1.在test.c文件中添加time函数与采用c语言内嵌汇编的time函数.具体实现请看下图. 2.然后在main函数中添加MenuConfig函数,进行注 ...

  9. URAL 1008 - Image Encoding(bfs坑爹题)

    坑爹题,两种输入输出互相交换,裸bfs #include <stdio.h> #include <string.h> typedef struct { int x; int y ...

  10. cmd命名设置成全局

    如在jsdoc里.想要把jsdoc命名设置成全局.只要把环境变量里面的用户变量里面的path变量值增加 C:\Program Files\nodejs;E:\Program Files (x86)\j ...