C# 如何确定网络路径是否可用(在线或离线)?

C# 如何确定网络路径是否可用(在线或离线)?,c#,.net,networking,wmi,C#,.net,Networking,Wmi,使用.NET/C#,如何确定网络路径(例如.\mymachine\myfolder)是否可用(联机或脱机)?有没有办法让WMI通知此类事件 谢谢 可以尝试Ping类: 它将告诉您是否有主机可用,但我不知道它是否会告诉您是否有特定的共享/路径可用。您可以使用Directory.Exists检查路径是否存在 bool folderExists = Directory.Exists(@"\\Path\To\Folder"); 试着使用它。如果不是,则会导致错误情况。无论如何,您必须针对这种情况编写

使用.NET/C#,如何确定网络路径(例如.\mymachine\myfolder)是否可用(联机或脱机)?有没有办法让WMI通知此类事件


谢谢

可以尝试Ping类:


它将告诉您是否有主机可用,但我不知道它是否会告诉您是否有特定的共享/路径可用。

您可以使用
Directory.Exists
检查路径是否存在

bool folderExists = Directory.Exists(@"\\Path\To\Folder");

试着使用它。如果不是,则会导致错误情况。无论如何,您必须针对这种情况编写代码:为什么要重复两次呢?

这代价很高。我希望操作系统通知我,这并不意味着什么。对同一条件进行两次测试和对同一恢复进行两次编码的成本更高。我想你有一段时间会用到这些资源。预测试其可用性基本上是无效的:您引入了一个计时窗口,在此期间,在您测试它之后,它可能变得不可用。基本上,你是在要求计算机预测未来。在某些情况下,仅仅使用它会导致Directory.GetFiles()和OpenFileDialog.ShowDialog()之类的东西出现挂起几分钟(实现这一点的一种方法是访问共享,断开VPN,然后再次访问共享)。如果网络脱机,我相信这将返回错误,与网络在线,但路径只是不存在。