清除缓存,,计算文件夹大小

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

//

//    NSLog(@"缓存文件大小为%@",[NSString stringWithFormat:@"%0.2fM",[self folderSizeAtPath:[NSString stringWithFormat:@"%@/Library/Caches/ImageCache",NSHomeDirectory()]]]);

#pragma mark 沙盒:Library(系统文件) Temp(临时文件) Documents(用于App缓存)

NSLog(@"===%@===",[NSString stringWithFormat:@"%0.2f",[self folderSizeAtPath:@"/Users/liushuo/Desktop/1567Pro第15天"]]);

//清除缓存

[self clearCacheFromPath:@"/Users/liushuo/Desktop/上线相关文档"];

//这里填写的是对应SDWebImage所缓存图片的目录

//可根据相应需求改成相应的文件目录

// Do any additional setup after loading the view, typically from a nib.

}

//单个文件的大小

- (long long) fileSizeAtPath:(NSString*) filePath{

NSFileManager* manager = [NSFileManager defaultManager];

if ([manager fileExistsAtPath:filePath]){

return [[manager attributesOfItemAtPath:filePath error:nil] fileSize];

}

return 0;

}

//遍历文件夹获得文件夹大小,返回多少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);//转换为多少M进行返回

}

#pragma mark 清除缓存大小 打印NSHomeDritiony前往Documents进行查看路径

- (void)clearCacheFromPath:(NSString*)path{

//建立文件管理器

NSFileManager * manager = [NSFileManager defaultManager];

if ([manager fileExistsAtPath:path]) {

//如果文件路径存在 获取其中所有文件

NSArray * fileArr = [manager subpathsAtPath:path];//找到所有子文件的路径,存到数组中。

//首先需要转化为完整路径

//直接删除所有子文件

for (int i = 0; i < fileArr.count; i++) {

NSString * fileName = fileArr[i];

//完整路径

NSString * filePath = [path stringByAppendingPathComponent:fileName];

NSLog(@"%@",filePath);

[manager removeItemAtPath:filePath error:nil];

}

}

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

@end

时间: 2024-09-27 18:13:24

清除缓存,,计算文件夹大小的相关文章

计算文件夹大小、拷贝文件显示进度

计算文件夹大小(get-childitem -path $folder -recurse| measure-object -property length -sum).sum/1mb #拷贝文件提示进度(脚本只对零散文件有效,如果有大型文件的话,进度显示不正确)$folder = "D:\Temp_del"$des = "d:\test"$p=0$sizes = (get-childitem -path $folder -recurse| measure-objec

Python_计算文件夹大小

计算文件夹大小 os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印 os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略 os.path.getsize(path) 返回path的大小 os.path.isdir(path) 如果path是一个存在的目录,则返回True.否则返回False 递归版: 1 import os 2 3 4 def get_size(pa

【PowerShell】计算文件夹大小

Powershell 2.0版本下的脚本: <# Script Function: get size of folder Script Editor: Snail Yu #> $directories=Get-ChildItem c:\windows |where {$_.mode -like "d*"} foreach ($directory in $directories){     $files=(Get-ChildItem $directory -Recurse -

Linux C++获取文件夹大小

项目中要计算指定文件夹的大小.百度查到这篇文章,https://my.oschina.net/Tsybius2014/blog/330628方法可行,运行正确. 拿到我们的项目中,却遇到一些问题:程序中一些读文件的代码,开始报异常,都不到文件.这些都是以前没有遇到过的问题.到底是什么情况呢?排查了好久,终于发现使用该文章提供的计算文件夹大小的函数(暂且叫做GetDirectorySize),其中有改变当前目录的代码: chdir(dir); 我们的项目是多线程的,一个线程调用GetDirecto

输出文件夹大小

import os, re """ 查看文件夹下的所有文件及文件夹 join为拼接函数 """ def Look_File(path): for root , dirs, files in os.walk(path): print(root) #主目录 for item in files: #主目录下的文件夹 print(os.path.join(root, item)) """ 计算文件夹 大小 "&qu

SCCM客户端ccmcache文件夹清除和修改及Installer文件夹大小问题

关于ccmcache文件夹大小问题: 一大早上班收到邮件告警,提示OA系统C盘空间不足,使用率超过85% 查看C盘文件使用情况,发现ccmcache占用了7.4G的空间 ccmcache是sccm客户端更新时下载补丁用的缓存文件夹,将临时补丁.驱动和其他下载的软件存储在计算机或移动设备上. 清除ccmcache会删除过时的软件和信息,释放系统空间,并帮助消除任何有害的恶意软件.但注意:清除缓存可能会影响您之前在CCM附属程序中保存的个人信息和密码设置. 网上查了一下,ccmcache文件夹内容可

计算文件(文件夹)大小

// 1.文件管理者 NSFileManager *mgr = [NSFileManager defaultManager]; // 2.判断file是否存在 BOOL isDirectory = NO; BOOL fileExists = [mgr fileExistsAtPath:file isDirectory:&isDirectory]; // 文件\文件夹不存在 if (fileExists == NO) return 0; // 3.判断file是否为文件夹 if (isDirect

文件大小的计算和文件夹大小的计算

1读取本地documents文件里文件夹的大小(我们可以利用NSDirectoryEnumerator这个类) NSString * Docupath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0]; //    一般不要吧文件直接放到documents文件夹下,要创建新的文件夹 NSString * filePath = [Docupath stringByAppendin

iOS NSFileManeger 计算文件是否超时,和计算文件夹下文件的总大小

//获得指定文件距离上次修改时间是否达到了指定值(秒)timeout +(BOOL)isTimeout:(NSString *)path time:(NSTimeInterval)timeout { //获得当前时间 NSTimeInterval now = [[NSDate date] timeIntervalSince1970]; NSDictionary *dict = [[NSFileManager defaultManager] attributesOfItemAtPath:path