我在我的应用程序中使用Java的File类中的file.GetFreeSpace()
来确保在传输文件之前有足够的空间。该路径是一条路径,目前在其上有大约5TB的可用空间。但是,当运行上面的代码时,返回的空间量仅为713998336字节(~680MB)。
我将应用程序映射到使用100MB到1GB以上的不同路径(我正在添加/删除要测试的文件),并且应用程序在那里报告了正确的可用空间量。
更新:通过大量调试,我发现了这个问题。
与此类似的unc路径:\\domain6\test\Scratch_Folder\
其中Scratch_Folder是具有~5TB可用空间的DFS命名空间。但是,当file.getFreeSpace
执行时,它将返回\\domain6\test\
的可用空间,该空间仅为670MB。为什么会这样?
答案 0 :(得分:0)
听起来像是JVM中的错误。此功能是Java 6的新功能,您可以尝试Java 6更新25.当我为9 TB免费的UNC路径运行此功能时,我看到9 TB。
答案 1 :(得分:0)
我发现了这个问题! Java返回DFS根目录中的可用空间量,而不是DFS的实际文件夹(Scratch_Folder显示为快捷方式)。我找到了一个不同的,更直接的路径到不包含快捷方式的文件夹,而是将应用程序指向那里,现在它按预期工作。