标签:
//拿到要清理的路径,其实就是caches的路径,一般像这种很多地方都会用到的地方真好搞成宏,不过现在苹果不提倡用宏了 //在swift中可以定义成全局的常量 //遍历caches,将内部的文件大小计算出来,点击确认删除的话直接删除全部文件,如果有不想清理的文件,可以在遍历文件时根据路径过滤掉 { NSString *path = WNXCachesPath; NSFileManager *fileManager=[NSFileManager defaultManager]; float folderSize; if ([fileManager fileExistsAtPath:path]) { //拿到算有文件的数组 NSArray *childerFiles = [fileManager subpathsAtPath:path]; //拿到每个文件的名字,如有有不想清除的文件就在这里判断 for (NSString *fileName in childerFiles) { //将路径拼接到一起 NSString *fullPath = [path stringByAppendingPathComponent:fileName]; folderSize += [self fileSizeAtPath:fullPath]; } self.alertView = [[UIAlertView alloc] initWithTitle:@"清理缓存" message:[NSString stringWithFormat:@"缓存大小为%.2fM,确定要清理缓存吗?", folderSize] delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil]; [self.alertView show]; self.alertView.delegate = self; } }
1 #pragma mark UIAlertViewDelegate 2 - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 3 { 4 if (buttonIndex) { 5 //点击了确定,遍历整个caches文件,将里面的缓存清空 6 NSString *path = WNXCachesPath; 7 NSFileManager *fileManager=[NSFileManager defaultManager]; 8 if ([fileManager fileExistsAtPath:path]) { 9 NSArray *childerFiles=[fileManager subpathsAtPath:path]; 10 for (NSString *fileName in childerFiles) { 11 //如有需要,加入条件,过滤掉不想删除的文件 12 NSString *absolutePath=[path stringByAppendingPathComponent:fileName]; 13 [fileManager removeItemAtPath:absolutePath error:nil]; 14 } 15 } 16 } 17 18 self.alertView = nil; 19 } 20 21 //计算单个文件夹的大小 22 -(float)fileSizeAtPath:(NSString *)path{ 23 24 NSFileManager *fileManager=[NSFileManager defaultManager]; 25 26 if([fileManager fileExistsAtPath:path]){ 27 28 long long size=[fileManager attributesOfItemAtPath:path error:nil].fileSize; 29 30 return size/1024.0/1024.0; 31 } 32 return 0; 33 }
标签:
原文地址:http://www.cnblogs.com/songxing10000/p/4708290.html