123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- //
- // SZKCleanCache.m
- // CleanCache
- //
- // Created by sunzhaokai on 16/5/11.
- // Copyright © 2016年 孙赵凯. All rights reserved.
- //
- #import "SZKCleanCache.h"
- @implementation SZKCleanCache
- /**
- * 清理缓存
- */
- +(void)cleanCache:(cleanCacheBlock)block
- {
- dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
- //文件路径
- NSString *directoryPath=[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];
-
- NSArray *subpaths = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:directoryPath error:nil];
-
- for (NSString *subPath in subpaths) {
- NSString *filePath = [directoryPath stringByAppendingPathComponent:subPath];
- [[NSFileManager defaultManager] removeItemAtPath:filePath error:nil];
- }
- //返回主线程
- dispatch_async(dispatch_get_main_queue(), ^{
- block();
- });
- });
-
- }
- /**
- * 计算整个目录大小
- */
- +(float)folderSizeAtPath
- {
- NSString *folderPath=[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];
-
- 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 );
- }
- /**
- * 计算单个文件大小
- */
- +(long long)fileSizeAtPath:(NSString *)filePath{
-
- NSFileManager *manager = [NSFileManager defaultManager];
-
- if ([manager fileExistsAtPath :filePath]){
-
- return [[manager attributesOfItemAtPath :filePath error : nil ] fileSize];
- }
- return 0 ;
-
- }
- @end
|