答案 0 :(得分:4)
答案 1 :(得分:2)
如果你知道当文件存在时,FileExists会快速返回,那么你可以从另一个线程调用FileExists并使用自定义超时参数来更快地中止操作。
答案 2 :(得分:2)
问题在于,FileExists正在调用CreateFile(实际上是NtCreateFile),并且对CreateFile的调用是同步的。
您可以通过提取计算机名称并ping计算机名称来实现某些功能,但这只会告诉您与计算机关联的NIC是否在线,它没有说明文件的状态。远程计算机上的打印服务。您的文件也可能位于DFS连接的另一端,在这种情况下,您甚至无法确定正确的远程服务器。
最重要的是,这样做真的很有挑战性,你最好去做despart所说的并在另一个线程上调用FileExists。确保在超时时不要尝试清理线程 - TerminateThread是一个邪恶的API。