计算文件夹大小

下面分享给大家2个封装好的计算缓存大小的方法


首先你要先确定你要计算的是哪个文件夹,先写好该文件夹的路径。


如:NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMaskYESlastObject]; //是沙盒文件夹中 Lidrary中的Caches文件夹的路径



在.m中写入总这2个方法,然后调用。下面具体说说这2个方法的用途。


方法1是在你文件夹下计算每个单个文件夹的大小。
方法2是该文件夹下所有文件,当然包括文件夹中有文件夹这种嵌套关系,然后调用方法1去计算每个文件夹的大小,最后叠加起来。

//方法1:单个文件的大小

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

    NSFileManager* manager = [NSFileManager defaultManager];

    if ([manager fileExistsAtPath:Path]){

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

    }

    return 0;

}

//方法2:遍历文件夹获得文件夹大小,返回多少MB

- (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);

}


// 删除缓存


在适合我地方使用者方法可以将(self.path)该路径下的文件夹全部删除

 NSArray *files = [[NSFileManagerdefaultManager] subpathsAtPath:self.path];

        

        for (NSString *pin files) {

            NSError *error;

            NSString *path = [self.pathstringByAppendingPathComponent:p];

            if ([[NSFileManagerdefaultManager] fileExistsAtPath:path]) {

                [[NSFileManagerdefaultManager] removeItemAtPath:patherror:&error];

            }

        }




<think>好的,用户现在的问题是关于如何在Linux系统中计算文件夹大小的命令。之前他们可能已经问过类似的问题,但需要更详细的解答。根据用户提供的引用内容,我需要整合这些信息,并按照他们的格式要求来回答。首先,用户提到的引用[1]指出使用du命令,这是关键。需要详细说明du的不同选项,比如-s和-h,以及如何组合使用。用户可能还希望知道其他相关命令,比如df和ls,但根据问题,重点应放在计算文件夹大小上。接下来,用户强调要使用正确的LaTeX格式,虽然这个问题可能不涉及数学公式,但需要确保任何命令中的变量或参数正确呈现。例如,在解释命令选项时,可能需要用$符号包裹,但根据用户的问题,可能不需要复杂的数学表达式,所以这部分可能较少。 用户还要求生成相关问题,我需要根据回答内容提出三个相关的问题。例如,如何排除子目录,如何按时间排序,或者如何自动化任务,这些都是与计算文件夹大小相关的常见后续问题。需要检查回答结构是否清晰,分步骤说明,每个步骤包含示例代码或命令,并正确添加引用标记。同时,确保回答中的命令正确无误,比如du -sh *,以及可能的组合命令,如排序或过滤结果。 最后,确保使用中文回答,避免使用Markdown格式,但用户给出的示例中使用了代码块,所以需要保留。同时,引用标记要自然地放在相关内容的末尾,如[^1]、[^2]等。</think>### Linux计算文件夹大小的常用命令及方法 #### 一、核心命令:`du`(disk usage) 1. **基础用法** ```bash du -sh /path/to/directory ``` - `-s`:显示目录总大小(不递归子目录单独统计) - `-h`:以人类可读单位输出(如KB、MB、GB)[^2] - 示例:`du -sh ~/Downloads` 显示下载文件夹大小 2. **多目录对比** ```bash du -sh /path/* | sort -rh ``` - `sort -rh`:按数值逆序排列结果[^2] - 示例:`du -sh * | sort -rh` 查看当前目录下所有子目录大小排序 3. **深度控制** ```bash du -h --max-depth=1 /path/to/directory ``` - `--max-depth=1`:仅显示一级子目录大小 #### 二、扩展命令组合 1. **结合`find`过滤大文件** ```bash find /path -type f -size +100M -exec du -h {} + | sort -rh ``` - 查找大于100MB的文件并排序 2. **图形化工具** ```bash ncdu /path/to/directory ``` - 交互式界面显示磁盘使用情况 #### 三、系统级监控(需root权限) 1. **文件系统总览** ```bash df -h /path/to/directory ``` - 查看目录所在分区的磁盘剩余空间[^3] 2. **Inode使用情况** ```bash df -i /path/to/directory ``` #### 四、数学表达式示例 假设某目录大小计算满足: $$ S = \sum_{i=1}^{n} f_i $$ 其中$f_i$表示目录下第$i$个文件的大小,$n$为文件总数[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值