File.createTempFile(title, ext).getTotalSpace() returns 一个错误的结果

File.createTempFile(title, ext).getTotalSpace() returns a wrong result

我正在使用 File file = File.createTempFile(title, ext); 来创建一个临时文件,该文件应在方法完成处理后删除。我还需要在创建后对其进行一些大小检查,但失败了,因为 file.getTotalSpace(); returns 一个巨大的数字 - “238857973760” - 几乎是 2 太比特。在 tmp 文件夹中创建的实际文件为 1KB。另外,我只有 250 GB ...所以我不知道这个值是什么。

知道为什么这种方法会流氓吗?

如果您阅读方法 getTotalSpace() 的 JavaDoc:

Returns the size of the partition named by this abstract pathname.

它不是 return 您文件的大小,而是您磁盘上分区的大小(但如果无法确定它可能 return 无效值,例如在网络磁盘上)。

如果您想获取文件的大小,请改用 file.length()。

file.getTotalSpace() returns 分区大小(以字节为单位)。您可以使用 file.length()

断言他人, 如果要获取文件的大小,可以使用 file.length()。

示例:here

文件方法:here

使用长度法:

System.out.println("size of file is"+file.length());

returns 文件大小(字节)