iOS 清空缓存(递归计算沙盒目录大小)

来源:互联网 发布:福州地铁软件 编辑:程序博客网 时间:2024/05/01 11:41

简单代码:

////  ViewController.m//  sandBoxSize////  Created by Brother on 15/2/10.//  Copyright (c) 2015年 com.ccloveyy. All rights reserved.//#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];    float a = [self fileSizeForDir:NSHomeDirectory()];    NSLog(@"NSHomeDirectory---%f", a);    NSString *path = NSHomeDirectory();//主目录    NSLog(@"NSHomeDirectory:%@",path);    float b = [self fileSizeForDir:path];    NSLog(@"path%f", b);    NSString *userName = NSUserName();//与上面相同    NSString *rootPath = NSHomeDirectoryForUser(userName);    NSLog(@"NSHomeDirectoryForUser:%@",rootPath);    float c = [self fileSizeForDir:rootPath];    NSLog(@"rootPath%f", c);    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);    NSString *documentsDirectory=[paths objectAtIndex:0];//Documents目录    NSLog(@"NSDocumentDirectory:%@",documentsDirectory);    float d = [self fileSizeForDir:documentsDirectory];    NSLog(@"documentsDirectory%f", d);}- (float)fileSizeForDir:(NSString*)path//计算文件夹下文件的总大小{    NSFileManager *fileManager = [[NSFileManager alloc] init];    float size =0;    NSArray* array = [fileManager contentsOfDirectoryAtPath:path error:nil];    for(int i = 0; i<[array count]; i++)    {        NSString *fullPath = [path stringByAppendingPathComponent:[array objectAtIndex:i]];        BOOL isDir;        if ( !([fileManager fileExistsAtPath:fullPath isDirectory:&isDir] && isDir) )        {            NSDictionary *fileAttributeDic=[fileManager attributesOfItemAtPath:fullPath error:nil];            size+= fileAttributeDic.fileSize/ 1024.0/1024.0;        }        else        {            [self fileSizeForDir:fullPath];        }    }    return size;}- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}@end
0 0
原创粉丝点击