如果服务器响应超时,使用带有 UNC 路径的 Java File.delete() 会得到什么

What would I get using Java File.delete() with UNC path if the server response time out

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

如果使用 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 java文档中找不到任何关于 UNC 表示法的内容,但它受支持。

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

谢谢!

我认为答案是20-60 seconds, depending on your software, and version of Windows

我不认为 java 或 JVM 负责执行您要求的操作,而是在 JVM 的实现中,删除此文件将委托给 OS 级别的库,它可以完成所有 SMB 的工作。因此,在这种情况下,您关于超时的问题与所讨论的 java 库无关,而可能与实现 SMB 协议的任何库有关。

这个问题的答案是 "it depends on which SMB library we're talking about"。上面的 link 为 Windows 的各种组合提供了一些通用超时参数,但它们在我看来遍布整个地图。所以我认为基于该数据的安全范围是 20 - 60 秒。