2012-04-18 120 views
3

我想使用File.getUsuableSpace()來打印分區的所有可用空間的字節數,但它返回的值不是df命令(在Linux中)。File.getUsableSpace()不返回與Linux中的「df」命令相同的值

它沒有太大的差別,但它在幾兆字節上有所不同。

可能是什麼情況?

+0

** df **的結果舍入到1K塊嗎? – 2012-04-18 12:36:51

+0

是的,它是1K塊。但即使我將File.getUsableSpace()除以1024,它也不同。 – Rox 2012-04-18 12:54:07

+0

沒有什麼會影響執行java程序和「df」命令之間的硬件驅動。但是也許操作系統或其他東西確實會影響它? – Rox 2012-04-18 12:56:18

回答

2

File實例是否與您正在運行df的文件在同一分區上表示的文件?

docs:「返回上分區此抽象路徑名命名提供給該虛擬機的字節數」

重點是我的。

+0

是的,它在同一個分區上。 「df」列出所有分區。 – Rox 2012-04-18 12:38:31

0

這隻會給可用空間,嘗試getFreeSpace()會返回空閒空間而不能使用空間。這適用於Java 1.6,有關更多信息,請參閱File class documentation