FileExists超时

可能重复:
更快的DirectoryExistsfunction?

我想检查networking驱动器上是否存在某个文件。 但如果驱动器断开连接,则FileExists速度太慢。 我怎样才能检查一下超时?

欢迎举例。

Solutions Collecting From Web of "FileExists超时"

查看

更快的DirectoryExists功能?

我在那里问了同样的问题。 实质是,不幸的是,如果文件不存在,你不能避免那些长时间的超时。

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

问题是在FileExists正在调用CreateFile(实际上是NtCreateFile)并且对CreateFile的调用是同步的。

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

底线是这样做真的很具有挑战性,你最好去做一些说话,然后在另一个线程上调用FileExists。 只要确保在超时时不尝试清理线程 – TerminateThread是一个邪恶的API。