我想计算目录的大小及其所有内容。我遇到的所有解决方案都使用NSFileManager(在计算文件大小时不考虑资源分支)或this carbon code使用不推荐使用的函数。
我们现在应该如何使用Cocoa获得准确的文件夹大小?
答案 0 :(得分:1)
我解决了这个问题:
- (unsigned long long)folderSizeForURL:(NSURL *)url {
NSArray *keys = @[ NSURLTotalFileSizeKey ];
NSDirectoryEnumerator *enumerator = [[NSFileManager defaultManager]
enumeratorAtURL:url
includingPropertiesForKeys:keys
options:0
errorHandler:^(NSURL *url, NSError *error) {
// Handle the error.
// Return YES if the enumeration should continue after the error.
return YES;
}];
unsigned long long size = 0;
for (NSURL *url in enumerator) {
NSError *error;
NSNumber *totalFileSize;
[url getResourceValue:&totalFileSize forKey:NSURLTotalFileSizeKey error:&error];
size += [totalFileSize longLongValue];
}
return size;
}
结果与取景器完全相同。