计算文件夹内容大小的方法

@interface NSString (Extension)
/**
 *  计算当前文件\文件夹的内容大小
 */
- (NSInteger)fileSize;
- (NSInteger)fileSize
{
    NSFileManager *mgr = [NSFileManager defaultManager];
    // 判断是否为文件
    BOOL dir = NO;
    BOOL exists = [mgr fileExistsAtPath:self isDirectory:&dir];
    // 文件\文件夹不存在
    if (exists == NO) return 0;
    
    if (dir) { // self是一个文件夹
        // 遍历caches里面的所有内容 --- 直接和间接内容
        NSArray *subpaths = [mgr subpathsAtPath:self];
        NSInteger totalByteSize = 0;
        for (NSString *subpath in subpaths) {
            // 获得全路径
            NSString *fullSubpath = [self stringByAppendingPathComponent:subpath];
            // 判断是否为文件
            BOOL dir = NO;
            [mgr fileExistsAtPath:fullSubpath isDirectory:&dir];
            if (dir == NO) { // 文件
                totalByteSize += [[mgr attributesOfItemAtPath:fullSubpath error:nil][NSFileSize] integerValue];
            }
        }
        return totalByteSize;
    } else { // self是一个文件
        return [[mgr attributesOfItemAtPath:self error:nil][NSFileSize] integerValue];
    }
}

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 、、、 、、、清缓存、、、//删除该文件夹[mgr removeItemAtPath:caches error:n...
    小丑不会笑阅读 368评论 0赞 0
  • 想想看自己,有时候是一个特别敏感的人。 一早上睁开双眼,没有听到室友的早安,就觉得昨晚说了什么不该说的梦话让他...
    一只小麋鹿阅读 415评论 0赞 0
  • 以前总是觉得我是可以撒欢地喜欢一个人,可当我看到你和迷妹一起玩王者荣耀时。 我就够了,从来都没主动叫我一起玩过游戏...
    神奇兔子是我阅读 255评论 0赞 1
  • 终于把红楼看完了,静静地合上双眼,细细地回味书中韵味,心境犹如浩月清波,微妙而细腻,凄美、清淡而幽香; 重回翻阅,...
    霜月秋夕阅读 777评论 0赞 1
  • 近来几个黄昏,在校园中总有个悠闲独步的身影,想着刚来夏令营时的一切;且悲且喜,回忆涌现! 那日我...
    孔庆羽阅读 433评论 1赞 2

友情链接更多精彩内容