我正在使用NSFileManager
'senumeratorAtPath
方法来计算特定目录下的文件大小。
NSString *iterDir = @"/path/to/dir/";
NSFileManager *fm = [[NSFileManager alloc] init];
NSDirectoryEnumerator *dirEnum = [fm enumeratorAtPath:iterDir];
NSString *file;
BOOL isDir;
long long fileSize = 0;
while (file = [dirEnum nextObject]) {
@autoreleasepool {
file = [iterDir stringByAppendingString:file];
if ([fm fileExistsAtPath:file isDirectory:&isDir]) {
if (!isDir) {
NSError *error;
NSDictionary *attributes = [fm attributesOfItemAtPath:file error:&error];
if (!error) {
fileSize += [attributes[@"NSFileSize"] doubleValue];
}
}
}
}
}
NSLog(@"fileSize:%lld", fileSize);
结果是这样的:
有时像这样:
内存是干什么用的?为什么连外加@autoreleasepool
都没有效果?