从查找器和碳文件经理夹的大小之间的大小差异
-
18-09-2019 - |
题
我使用这个方法由Dave德朗来计算使用碳文件管理器API的一个文件夹的尺寸:
(其第一种方法在那里)
我遇到的问题是,一些文件夹(在我的情况。应用程序包)没有报告正确的尺寸。例如,DiskWarrior是8.2MB,并且该方法报告6.6MB
这是为什么发生这种情况的任何想法?
感谢
解决方案
在查找器将报告舍入到随后以字节为单位的实际大小的块的大小(通常为4 KB)的最接近的多个文件的大小,以及许多(大多数)应用是文件的束,所以应用的真实大小可远远大于示出为在第一(“上磁盘”)值的尺寸。
您可以通过做一些事情(在终端)像测试了这一点:
echo -n 'foo' > foo.txt
如果您在本文件中的Finder中获取信息,它会报出大小为“4 KB磁盘(3个字节)。”
其他提示
我对你已经链接到我的是源代码的改善。这里的新版本:
http://github.com/davedelong/BetterInfo/blob /aa1cfe079dad6207a7ddac84b108a768c2cc7156/NSFileManager+BetterInfo.m (你还需要相应的.h文件的此支持文件)
现在,而不是返回和NSUInteger,它返回类型的结构 “BIItemSyze”,它有六个成员:dataLogicalSize,dataPhysicalSize,resourceLogicalSize,resourcePhysicalSize,logicalSize,和physicalSize
如果你知道如何使用AppleScript的在你的代码,这里有一个方法O返回,你会在Finder中看到获取信息窗口的大小。注意,返回值是字节。
on getSizeInBytesFromPosixPath(posixPath)
try
set b to (POSIX file posixPath) as string
tell application "Finder" to return size of (b as alias)
on error
return 0
end try
end getSizeInBytesFromPosixPath
不隶属于 StackOverflow