iOS 计算缓存大小以及清理缓存
2016-08-24 09:40
381 查看
//1.计算文件大小:
- (long
long) fileSizeAtPath:(NSString*) filePath{
NSFileManager* manager = [NSFileManager
defaultManager];
if ([manager
fileExistsAtPath:filePath]){
return [[manager
attributesOfItemAtPath:filePath
error:nil]
fileSize];
}
return
0;
}
//2.计算文件夹大小:
//遍历文件夹获得文件夹大小,返回多少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);
}
- (void)action:(id)sender
{
//彻底清除缓存第一种方法
UIButton * button = sender;
[button setTitle:@"清理完毕"
forState:UIControlStateNormal];
NSArray *paths =
NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,
NSUserDomainMask,
YES);
NSString *path = [paths
lastObject];
NSString *str = [NSString
stringWithFormat:@"缓存已清除%.1fM",
[self
folderSizeAtPath:path]];
NSLog(@"%@",str);
NSArray *files = [[NSFileManager
defaultManager] subpathsAtPath:path];
for (NSString *p
in files) {
NSError *error;
NSString *Path = [path
stringByAppendingPathComponent:p];
if ([[NSFileManager
defaultManager] fileExistsAtPath:Path]) {
[[NSFileManager
defaultManager] removeItemAtPath:Path
error:&error];
}
}
[ self
performSelectorOnMainThread :
@selector (clearCachSuccess)
withObject :nil
waitUntilDone : YES ];
}
- ( void )clearCachSuccess
{
NSLog (
@" 清理成功 " );
UIAlertView * alertView = [[
UIAlertView alloc ]
initWithTitle : @"
提示 "
message : @"
缓存清理完毕 "
delegate : nil
cancelButtonTitle :
@" 确定 "
otherButtonTitles :
nil ];
[alertView show ];
[ _mainTableView
reloadData ];//清理完之后重新导入数据
}
- (long
long) fileSizeAtPath:(NSString*) filePath{
NSFileManager* manager = [NSFileManager
defaultManager];
if ([manager
fileExistsAtPath:filePath]){
return [[manager
attributesOfItemAtPath:filePath
error:nil]
fileSize];
}
return
0;
}
//2.计算文件夹大小:
//遍历文件夹获得文件夹大小,返回多少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);
}
- (void)action:(id)sender
{
//彻底清除缓存第一种方法
UIButton * button = sender;
[button setTitle:@"清理完毕"
forState:UIControlStateNormal];
NSArray *paths =
NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,
NSUserDomainMask,
YES);
NSString *path = [paths
lastObject];
NSString *str = [NSString
stringWithFormat:@"缓存已清除%.1fM",
[self
folderSizeAtPath:path]];
NSLog(@"%@",str);
NSArray *files = [[NSFileManager
defaultManager] subpathsAtPath:path];
for (NSString *p
in files) {
NSError *error;
NSString *Path = [path
stringByAppendingPathComponent:p];
if ([[NSFileManager
defaultManager] fileExistsAtPath:Path]) {
[[NSFileManager
defaultManager] removeItemAtPath:Path
error:&error];
}
}
[ self
performSelectorOnMainThread :
@selector (clearCachSuccess)
withObject :nil
waitUntilDone : YES ];
}
- ( void )clearCachSuccess
{
NSLog (
@" 清理成功 " );
UIAlertView * alertView = [[
UIAlertView alloc ]
initWithTitle : @"
提示 "
message : @"
缓存清理完毕 "
delegate : nil
cancelButtonTitle :
@" 确定 "
otherButtonTitles :
nil ];
[alertView show ];
[ _mainTableView
reloadData ];//清理完之后重新导入数据
}
相关文章推荐
- iOS计算App缓存的大小以及清理、iOS应用跳转到appstore评分、文字加阴影、 NSMutableArray到NSData的转化
- iOS开发 _计算缓存大小/清理
- iOS 缓存,以及缓存大小,缓存清理等
- iOS 计算SDWebImage本地缓存图片大小+清理本地缓存的图片
- ios开发计算缓存的大小以及清除
- 计算下载文件大小并写入本地文件和清理缓存
- iOS计算缓存文件的大小
- 计算SDWebImage缓存大小以及清除
- iOS 缓存大小 清理
- iOS缓存文件大小显示功能和一键清理功能的实现方法
- iOS 计算缓存文件的大小
- IOS开发——ASIDownloadCache计算缓存大小&清除缓存
- iOS 清空缓存(递归计算沙盒目录大小)
- IOS计算清理缓存
- iOS 计算缓存大小
- iOS计算缓存内容大小
- iOS计算缓存文件大小, 和清除缓存功能
- iOS计算缓存大小、清除缓存
- ios获取缓存文件的大小,实现缓的清理功能
- 清理缓存和计算缓存内容大小