Windows 文件存在超时

Windows 文件存在超时,windows,delphi,networking,Windows,Delphi,Networking,可能重复: 我想检查网络驱动器上是否存在某些文件。但如果驱动器断开连接,FileExists速度太慢。我如何在超时的情况下进行检查 欢迎提供示例。请查看 我在那里问了同样的问题。其本质是,不幸的是,如果文件不存在,您无法避免这些长时间超时。如果您知道当文件存在时,FileExists会快速返回,然后,您可以从另一个线程调用FileExists,并使用自定义超时参数更快地中止操作。问题是,在封面下FileExists正在调用CreateFile(实际上是NtCreateFile),而对Crea

可能重复:

我想检查网络驱动器上是否存在某些文件。但如果驱动器断开连接,FileExists速度太慢。我如何在超时的情况下进行检查

欢迎提供示例。

请查看


我在那里问了同样的问题。其本质是,不幸的是,如果文件不存在,您无法避免这些长时间超时。

如果您知道当文件存在时,FileExists会快速返回,然后,您可以从另一个线程调用FileExists,并使用自定义超时参数更快地中止操作。

问题是,在封面下FileExists正在调用CreateFile(实际上是NtCreateFile),而对CreateFile的调用是同步的

您可以通过提取计算机名并ping计算机名来实现某些功能,但这只会告诉您与计算机关联的NIC是否联机,而不会说明远程计算机上文件和打印服务的状态。您的文件也可能位于DFS连接的另一端,在这种情况下,您甚至无法确定正确的远程服务器


底线是这样做真的很有挑战性,最好按照despart所说的去做,并在另一个线程上调用FileExists。请确保在超时时不要试图清理线程-TerminateThread是一个邪恶的API。

谢谢,很抱歉重复