1.获取缓存目录

//获取缓存文件路径
-(NSString *)getCachesPath{
    // 获取Caches目录路径
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    NSString *cachesDir = [paths objectAtIndex:0];
    
    //指定文件名
   // NSString *filePath = [cachesDir stringByAppendingPathComponent:@"com.nickcheng.NCMusicEngine"];
    
    return cachesDir;
}

 

2.计算缓存文件大小

//计算缓存文件的大小
- (long long) fileSizeAtPath:(NSString*) filePath{
    NSFileManager* manager = [NSFileManager defaultManager];
    if ([manager fileExistsAtPath:filePath]){
        
//        //取得一个目录下得所有文件名
//        NSArray *files = [manager subpathsAtPath:filePath];
//        NSLog(@"files1111111%@ == %ld",files,files.count);
//        
//        // 从路径中获得完整的文件名(带后缀)
//        NSString *exe = [filePath lastPathComponent];
//        NSLog(@"exeexe ====%@",exe);
//        
//        // 获得文件名(不带后缀)
//        exe = [exe stringByDeletingPathExtension];
//        
//        // 获得文件名(不带后缀)
//        NSString *exestr = [[files objectAtIndex:1] stringByDeletingPathExtension];
//        NSLog(@"files2222222%@  ==== %@",[files objectAtIndex:1],exestr);
        
        
        return [[manager attributesOfItemAtPath:filePath error:nil] fileSize];
    }
    
    return 0;
}

清除缓存文件

dispatch_async(
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
, ^{
                    NSString *cachPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask, YES) objectAtIndex:0];
                    
                    NSArray *files = [[NSFileManager defaultManager] subpathsAtPath:cachPath];
                    NSLog(@"files :%d",[files count]);
                    for (NSString *p in files) {
                        NSError *error;
                        NSString *path = [cachPath stringByAppendingPathComponent:p];
                        if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {
                            [[NSFileManager defaultManager] removeItemAtPath:path error:&error];
                        }
                    }
                    [self performSelectorOnMainThread:@selector(clearCacheSuccess) withObject:nilwaitUntilDone:YES];});

-(void)clearCacheSuccess
{
    NSLog(@"清理成功");
}

----------------------------------------------------------------------------------------------

dispatch_async(
                       dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
                       , ^{
                           //获取缓存目录
                           NSString *cachPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask, YES) objectAtIndex:0];
                           
                           NSError *error;
                           if ([[NSFileManager defaultManager] fileExistsAtPath:cachPath]) {
                               //如果存在就删除
                               [[NSFileManager defaultManager] removeItemAtPath:cachPath error:&error];
                           }
                           
                           [self performSelectorOnMainThread:@selector(clearCacheSuccess) withObject:nil waitUntilDone:YES];
                       });



//计算缓存文件的大小,多少M
- (NSString *) fileSizeAtPath:(NSString*)cachPath{
    NSFileManager* manager = [NSFileManager defaultManager];
    if ([manager fileExistsAtPath:cachPath]){
        unsigned long long length  = [[manager attributesOfItemAtPath:cachPath error:nil] fileSize];
        float ff = length/1024.0/1024.0; //换算成多少M
        NSString *size = [NSString stringWithFormat:@"%0.2fM",ff];
        return size;
    }
    return 0;
}

//清理缓存后刷新
-(void)clearCacheSuccess
{
    NSString *cachPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask, YES) objectAtIndex:0];
    NSString *size = [self fileSizeAtPath:cachPath];
    _setting.cache = size;
    [self.tableView reloadData];
    
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"清理成功" message:nil delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil];
    [alertView show];
}

 

posted on 2015-01-29 14:21  墓厄  阅读(5855)  评论(0编辑  收藏  举报