1 macos cocoa programming-languages objective-c
我试图找出如何根据文件或目录的大小分别将文件(或目录)的字节大小转换为千字节,兆字节,千兆字节等...以便匹配Finder在面板中显示的内容"获取信息".
我得到的字节大小与Finder中报告的字节大小完全匹配,但我无法弄清楚如何获取文件的大小(由Finder以KB,MB,GB等显示)以匹配.
我知道在10.6中我们使用基数10,所以千字节是1000字节而不是1024,但是将字节数除以1000(或1000 ^ 2,1000 ^ 3等)与Finder报告的不匹配.
例如,在Finder中:一个330字节的文本文件显示为4KB文件(所以我最初的猜测是将所有文件大小四舍五入到4KB数字),但389,022字节目录显示为418KB(方式)超过四舍五入,所以我猜错了).此外,1,315,291,136字节的文件显示为1.33GB.
所以,有人可以这么善良,以便在这里阐明一些亮点吗?这些数字是如何计算的?我环顾四周,一直无法找到答案.
在此先感谢您的帮助!
PS自从我开始编程以来,我一直都是100%以Cocoa为导向,之前我从未使用过Carbon框架(我知道它非常强大,我只是不知道如何使用它).我提到这个以防万一有人想给我一个Carbon解决方案,假设我知道如何使用它.我不.
在HFS +中,每个文件将占用4,096字节的倍数("块大小").
如果您的目录包含一千个1字节文件,则该目录占用的总大小将是
(1000 * 4,096) = 4,096,000 = 4.1 MB,
Run Code Online (Sandbox Code Playgroud)
虽然目录使用的字节数仍然是
1 * 1000 = 1,000 bytes.
Run Code Online (Sandbox Code Playgroud)