【发布时间】:2013-08-11 23:26:19
【问题描述】:
.NET 4.0,这是一个外壳扩展
选择文件后,我的上下文菜单处理程序获取映射的驱动路径,但是我需要UNC路径,原因太长了。有没有办法从映射驱动器获取 UNC 路径。或者,我可以枚举所有映射的驱动器以及它们映射到的内容,以便根据驱动器号查找此信息
【问题讨论】:
.NET 4.0,这是一个外壳扩展
选择文件后,我的上下文菜单处理程序获取映射的驱动路径,但是我需要UNC路径,原因太长了。有没有办法从映射驱动器获取 UNC 路径。或者,我可以枚举所有映射的驱动器以及它们映射到的内容,以便根据驱动器号查找此信息
【问题讨论】:
您可以使用WNetGetConnection() 函数将映射的驱动器号转换为UNC 路径。
我无法在 .NET 方面为您提供帮助(您 should be careful about writing shell extensions using),但在 C++ 中,
LPCWSTR pszPath = L"M:\\"; // mapped drive
if (GetDriveType(pszPath) == DRIVE_REMOTE)
{
// WNetGetConnection needs drive letter WITHOUT trailing backslash
wchar_t wchDrive[3] = { pszPath[0], pszPath[1], L'\0' };
wchar_t wchUNC[MAX_PATH];
DWORD dwLength = _countof(wchUNC);
if (WNetGetConnection(wchDrive, wchUNC, &dwLength) == NO_ERROR)
{
// do something with wchUNC
}
}
【讨论】: