清理app应用程序的缓存
2017-05-19 11:30
148 查看
#define CacheDirectory [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES) objectAtIndex:0]//程序缓存目录
#pragma mark - 清理缓存
- (void)clearCache{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
0), ^{
NSArray * files=[[NSFileManager
defaultManager] subpathsAtPath:CacheDirectory];
for (NSString * p
in files) {
NSError * error;
NSString * path=[CacheDirectory
stringByAppendingPathComponent:p];
if ([[NSFileManager
defaultManager] fileExistsAtPath:path]) {
[[NSFileManager
defaultManager] removeItemAtPath:path
error:&error];
}
}
[self
performSelectorOnMainThread:@selector(clearCacheSuccess)
withObject:nil
waitUntilDone:YES];
});
}
//返回多少M
float m=[self
folderSizeAtPath:CacheDirectory];
cell.textLabel.text=[NSString
stringWithFormat:@" %@ %.2fM",[moreArray
objectAtIndex:indexPath.row],m];
#pragma mark - 遍历文件夹获得文件夹大小
返回多少M
- (float)folderSizeAtPath:(NSString *)folderPath{
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);
}
#pragma mark - 清理缓存
- (void)clearCache{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
0), ^{
NSArray * files=[[NSFileManager
defaultManager] subpathsAtPath:CacheDirectory];
for (NSString * p
in files) {
NSError * error;
NSString * path=[CacheDirectory
stringByAppendingPathComponent:p];
if ([[NSFileManager
defaultManager] fileExistsAtPath:path]) {
[[NSFileManager
defaultManager] removeItemAtPath:path
error:&error];
}
}
[self
performSelectorOnMainThread:@selector(clearCacheSuccess)
withObject:nil
waitUntilDone:YES];
});
}
//返回多少M
float m=[self
folderSizeAtPath:CacheDirectory];
cell.textLabel.text=[NSString
stringWithFormat:@" %@ %.2fM",[moreArray
objectAtIndex:indexPath.row],m];
#pragma mark - 遍历文件夹获得文件夹大小
返回多少M
- (float)folderSizeAtPath:(NSString *)folderPath{
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);
}
相关文章推荐
- 清理xcode运行时的App的缓存文件
- 关于APP清理缓存
- 简单的app缓存清理与计算缓存大小
- shell 清理app缓存
- 【App-V】:重置app-v客户端缓存(删除所有应用程序)
- 安卓开发之清理手机应用程序缓存
- android 获取其他应用程序的缓存大小以及清理应用缓存
- 清理app缓存
- iOS中为APP添加缓存清理功能
- 获取本应用和全部app缓存以及清理全解
- 利用反射获得程序的缓存大小、应用程序大小、数据大小,利用反射清除缓存,全部清理
- android app清理缓存
- 获取APP缓存大小以及清理APP缓存
- 清理应用程序缓存
- 清理应用程序缓存
- Android 清理app所有缓存
- android清理app缓存,计算缓存大小 工具类
- 获取应用程序缓存及一键清理
- Android 手机app缓存清理实现
- iOS计算App缓存的大小以及清理、iOS应用跳转到appstore评分、文字加阴影、 NSMutableArray到NSData的转化