轻松获取文件夹大小(ObjC/Cocoa)?

ind*_*gie 7 directory size cocoa objective-c nsfilemanager

现在我正在使用此代码来获取文件夹的大小:

NSArray *contents;
        NSEnumerator *enumerator;
        NSString *path;
        contents = [[NSFileManager defaultManager] subpathsAtPath:folderPath];
        enumerator = [contents objectEnumerator];
        while (path = [enumerator nextObject]) {
            NSDictionary *fattrib = [[NSFileManager defaultManager] fileAttributesAtPath:[folderPath stringByAppendingPathComponent:path] traverseLink:YES];
            fileSize +=[fattrib fileSize];
        }

        [contents release];
        [path release]; 
Run Code Online (Sandbox Code Playgroud)

问题是它非常真实.它要么增加几兆字节,要么从实际大小中扣除几兆字节.例如,我得到了一个.app包的文件大小,这个方法报告了16.2MB,而实际的是15.8.

获取文件夹大小的最佳方法是什么?

谢谢

Dav*_*ong 6

我今天需要自己做这个,并且我发现Cocoa-dev列表这篇文章中的代码非常快,并且匹配Finder对字节所说的内容.(不要忘记在kFSCatInfoRsrcSizes标志中使用OR,这样你也可以获得资源分叉大小!)

如果您需要有关如何使用它的更多解释,请发表评论,我将编辑此帖.=)