OGeek|极客世界-中国程序员成长平台

标题: iphone - 计算出的应用程序大小在 iOS 中显示不正确 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 11:51
标题: iphone - 计算出的应用程序大小在 iOS 中显示不正确

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

我计算了我的应用程序大小如下:

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];
};



Best Answer-推荐答案


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

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

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

请仔细阅读 NSURL 类的文件属性键

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

这可能对你有帮助。

关于iphone - 计算出的应用程序大小在 iOS 中显示不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17188322/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4