.NET 4.0, и это расширение оболочки
Когда выбран файл, мой обработчик контекстного меню получает сопоставленный путь к диску, но мне нужен UNC путь слишком долго объяснять. Есть ли способ получить путь UNC от сопоставленного диска. В качестве альтернативы, я могу перечислить все подключенные диски и то, что они сопоставляют, чтобы на основе буквы диска я мог найти эту информацию.Как я могу получить UNC-путь к файлу, который находится на подключенном сетевом диске
0
A
ответ
0
Вы можете использовать функцию 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
}
}