【问题标题】:How detect if mapped network drive is disconnected using IShellFolder?如何使用 IShellFolder 检测映射的网络驱动器是否断开连接?
【发布时间】:2012-01-26 15:24:56
【问题描述】:
我正在使用IShellFolder 接口来枚举Shell 命名空间对象。这样做我得到了我的映射网络驱动器,其中一些已连接且可用,而另一些则不可用。
我想知道如何检测特定映射驱动器是否可用。有没有我可以使用的方法、shell 函数或属性?
我正在使用IShellFolder.GetAttributesOf() 方法获取驱动器上的各种属性,但没有看到任何表明这一点的东西。
【问题讨论】:
标签:
c#
filesystems
windows-shell
filesystemobject
mapped-drive
【解决方案1】:
如果映射驱动器断开连接,它将不会出现在GetLogicalDrives 函数返回的位掩码中。
例如,
wchar_t wchDriveLetter = L'P'; // example
int iDriveNumber = towupper(wchDriveLetter) - L'A';
bool fIsDisconnected = ( GetLogicalDrives() & ( 1 << iDriveNumber ) ) == 0;