如何使用IShellFolder检测映射的网络驱动器是否已断开连接?

时间:2012-01-26 15:24:56

标签: c# filesystems windows-shell filesystemobject mapped-drive

我正在使用IShellFolder接口来枚举Shell命名空间对象。这样做我得到了我的映射网络驱动器,其中一些已连接且可用,而另一些则不可用。

我想知道如何检测特定的映射驱动器是否可用。我可以使用一些方法,shell函数或属性吗?

我正在使用IShellFolder.GetAttributesOf()方法获取驱动器上的各种属性,但是没有看到任何可以指示此内容的内容。

1 个答案:

答案 0 :(得分:1)

如果映射的驱动器断开连接,它将不会出现在GetLogicalDrives函数返回的位掩码中。

例如,

wchar_t wchDriveLetter = L'P'; // example
int iDriveNumber = towupper(wchDriveLetter) - L'A';
bool fIsDisconnected = ( GetLogicalDrives() & ( 1 << iDriveNumber ) ) == 0;