0

我有一个相当理论的问题要问你。

如果使用 UNC 路径调用 java.io.File#delete() 会发生什么,即 new File("\192.168.10.10\MyShare\myFile.txt").delete() 和底层 SMB_COM_DELETE 请求到达 SMB 服务器但SMB_COM_DELETE_RESPONSE 由于某种原因(网络故障、防火墙或其他)没有返回调用者?我希望java调用在几秒钟后超时,但是......你知道有多少吗?你知道一个人是否会得到某种例外吗?这是可配置的吗?如果我使用 Files.delete(),会有什么不同吗?

除了支持它之外,我在 java.io.File javadoc 中找不到 UNC 表示法的任何内容。

如果有人能回答这个问题,我会很高兴

谢谢!

4

1 回答 1

1

我认为答案是20-60 秒,具体取决于您的软件和 Windows 版本

我不认为 java 或 JVM 负责做你要求的事情,而是在 JVM 的实现中,这个文件的删除将委托给一个 OS 级库,该库将完成所有 SMB 的东西. 因此,在这种情况下,您关于超时的问题与所讨论的 java 库无关,而可能与实现 SMB 协议的任何库有关。

这个问题的答案是“这取决于我们谈论的是哪个 SMB 库”。上面的链接为各种 Windows 组合提供了一些通用的超时参数,但在我看来,它们无处不在。所以我认为基于该数据的安全范围是 20 - 60 秒。

于 2015-02-26T13:45:28.543 回答