清除app缓存

作者: unwalled | 来源:发表于2016-09-08 20:25 被阅读0次

//

//LYClearCache.h

//清除缓存

//

//Created by李瑜on 16/8/1.

//Copyright © 2016年李瑜. All rights reserved.

//

#import

#import

@interfaceLYClearCache : NSObject

/**计算缓存大小

*

*参数:缓存文件夹路径

*

*

*/

+ (void)getCacheSizeWithPath:(NSString *)directoryPath Completion:(void(^)(NSString* sizeString))completion;

/**删除文件夹下的文件

*

*参数:缓存文件夹路径

*

*

*/

+ (void)removeDirectoryPath:(NSString *)directoryPath Completion:(void(^)(BOOLret))completion;

@end

//

//LYClearCache.m

//清除缓存

//

//Created by李瑜on 16/8/1.

//Copyright © 2016年李瑜. All rights reserved.

//

#import"LYClearCache.h"

@implementationLYClearCache

//获取文件夹内容大小

+ (void)getCacheSizeWithPath:(NSString *)directoryPath Completion:(void(^)(NSString* sizeString))completion

{

dispatch_async(dispatch_get_global_queue(0,0), ^{

//获取文件管理者

NSFileManager * manager = [NSFileManager defaultManager];

//获取文件夹下所有的子路径

NSArray * subPaths = [manager subpathsAtPath:directoryPath];

NSInteger totalSize =0;

for(NSString * subPathinsubPaths) {

NSString * filePath= [directoryPath stringByAppendingPathComponent:subPath];

if([filePath containsString:@".DS"]) {

continue;

}

//判断是否文件夹

BOOLisDirectory;

//判断文件夹是否存在

BOOLisExit = [manager fileExistsAtPath:filePath isDirectory:&isDirectory];

if(!isExit || isDirectory) {

continue;

}

NSDictionary * attr = [manager attributesOfItemAtPath:filePath error:nil];

NSInteger fileSize = [attr fileSize];

totalSize += fileSize;

}

NSString * sizeStr =@"";

if(totalSize >1000*1000) {

//MB

CGFloat sizeF = totalSize /1000.0/1000.0;

sizeStr = [NSString stringWithFormat:@"%.1fMB",sizeF];

}else{

sizeStr = [NSString stringWithFormat:@"缓存区很干净,无须清理"];

//KB

}

if(completion) {

completion(sizeStr);

}

});

}

//删除文件夹下的文件

+ (void)removeDirectoryPath:(NSString *)directoryPath Completion:(void(^)(BOOLret))completion

{

dispatch_async(dispatch_get_global_queue(0,0), ^{

NSFileManager * manager = [NSFileManager defaultManager];

//获取文件夹下所有的子路径

NSArray * subPaths = [manager contentsOfDirectoryAtPath:directoryPath error:nil];

for(NSString * subPathinsubPaths) {

//拼接文件路径

NSString * filePath = [directoryPath stringByAppendingPathComponent:subPath];

//删除文件

[manager removeItemAtPath:filePath error:nil];

}

//完成回调

if(completion){

completion(YES);

}

});

}

@end

相关文章

网友评论

    本文标题:清除app缓存

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