我有一个应用程序,可以在启动时检查是否存在网络文件夹。如果它没有找到网络文件夹,那么它会一直保持轮询,直到它完成,然后进行正确的处理。
Logger.Instance.LogDebug("Checking for network location: |" + Settings.Instance.TransferNetworkLocation + "|");
if (Directory.Exists(Settings.Instance.TransferNetworkLocation))
{
// Do the stuff
}
else
{
Logger.Instance.LogDebug("Couldn't find the network location!");
IsNetworkLocationAvailable = false;
DisplayNetworkWarning = true;
return;
}
(Settings.Instance.TransferNetworkLocation
的值类似于\\MYHOST-PC12345\My Shared Location\
)
现在有时网络无法使用,在这种情况下,它会一直保持轮询直到可用。一切正常
除了:
当应用程序设置为在Windows启动时启动!当然,网络在启动时没有连接,网络连接需要几秒钟。所以我希望它会失败(即返回false
)一段时间。
但是它继续轮询,甚至在建立网络连接并且用户可以进入Windows资源管理器并浏览到该共享文件夹之后,但是对Directory.Exists()
的调用继续返回false
并且从不意识到文件夹现在存在。
我注意到你可以在该代码中看到的日志记录,第一次检查网络文件夹时,它需要一些时间才能失败 - 我假设它正在等待超时。但是它每隔一段时间检查一次,它没有时间花这么长时间,并立即回应该文件夹不存在。
是否有某种缓存无法找到此位置?如果是这样,有没有办法解决这个问题?