计算的应用程序大小在iOS中显示不正确

时间:2013-06-19 09:57:52

标签: iphone ios filesize

我的应用会定期将某些内容转储到文档文件夹中。我已经使用下面的代码来计算我的应用程序消耗的总内存大小。但我发现它与我从设置\用法中看到的不同。我的代码显示的内存非常少。我无法跟踪计算中出错的位置/或者我错过了文件夹路径。

我计算了我的应用尺寸如下:

NSString *folderPath = [[NSBundle mainBundle] bundlePath];
NSArray *filesArray = [[NSFileManager defaultManager]      subpathsOfDirectoryAtPath:folderPath error:nil];
NSEnumerator *filesEnumerator = [filesArray objectEnumerator];
NSString *fileName;
unsigned long long int fileSize = 0;

while (fileName = [filesEnumerator nextObject]) {
NSDictionary *fileDictionary = [[NSFileManager defaultManager] attributesOfItemAtPath: [folderPath stringByAppendingPathComponent:fileName] error:nil];
fileSize += [fileDictionary fileSize];
};

1 个答案:

答案 0 :(得分:1)

以上代码返回实际文件大小。设置/用法中显示的值显示已分配的大小分配的大小应大于实际大小。

这就是您的计算值和设置/使用值不匹配的原因。

如果您需要访问文件的已分配大小,请在NSURL类中使用NSURLTotalFileAllocatedSizeKey。 NSFileManager 类中没有可用的方法/属性来获取分配的大小 [据我所知]。

请详细了解NSURL课程的文件属性键

仅供参考:如果您尝试访问sanboxed app的主目录中的 / Library / Caches / Snapshot 文件夹,我们将收到权限错误。

这可能对您有所帮助。

相关问题