File.getFreeSpace()未返回正确的值

时间:2011-06-08 15:46:50

标签: java unc

我在我的应用程序中使用Java的File类中的file.GetFreeSpace()来确保在传输文件之前有足够的空间。该路径是一条路径,目前在其上有大约5TB的可用空间。但是,当运行上面的代码时,返回的空间量仅为713998336字节(~680MB)。

我将应用程序映射到使用100MB到1GB以上的不同路径(我正在添加/删除要测试的文件),并且应用程序在那里报告了正确的可用空间量。

更新:通过大量调试,我发现了这个问题。 与此类似的unc路径:\\domain6\test\Scratch_Folder\其中Scratch_Folder是具有~5TB可用空间的DFS命名空间。但是,当file.getFreeSpace执行时,它将返回\\domain6\test\的可用空间,该空间仅为670MB。为什么会这样?

2 个答案:

答案 0 :(得分:0)

听起来像是JVM中的错误。此功能是Java 6的新功能,您可以尝试Java 6更新25.当我为9 TB免费的UNC路径运行此功能时,我看到9 TB。

答案 1 :(得分:0)

我发现了这个问题! Java返回DFS根目录中的可用空间量,而不是DFS的实际文件夹(Scratch_Folder显示为快捷方式)。我找到了一个不同的,更直接的路径到不包含快捷方式的文件夹,而是将应用程序指向那里,现在它按预期工作。