2009-08-17 90 views

回答

1

取景器将报告舍入到随后以字节为单位的实际大小的块的大小(通常为4 KB)的最接近的多个文件的大小,以及许多(大多数)应用是文件的束,所以应用程序的真实大小可能远小于第一个(“磁盘上”)值所示的大小。

你可以做一些事情(在终端)像测试了这一点:

echo -n 'foo' > foo.txt

如果你对这个文件在Finder中获取信息,它会报出大小为“4 KB磁盘(3字节)“。

+0

嗯我尝试使用shell命令“du -sk <路径到文件夹>”来获取文件夹的大小,它仍然比Carbon文件管理器更接近实际的东西。我很确定du实用程序不像Finder那样围绕块大小。 – indragie 2009-08-17 21:05:38

+0

du显示块数(磁盘使用率)。 -k使它报告1 KB块的值,而不是磁盘的块大小。 – Wevah 2009-08-17 23:08:23

0

如果您知道如何在代码中使用applescript,请使用以下方法返回您在Finder Get Info窗口中看到的大小。请注意,返回的值是以字节为单位。

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 
+0

谢谢,我试过这种方法,它的工作原理 - 大小正如Finder报告的那样。然而,与其他方式相比,它的速度非常慢并且在负载下崩溃。我需要一次处理大量的文件和文件夹。任何其他方式来获得由Finder报告的大小? – indragie 2009-08-18 00:32:22