2013-08-11 4 views
0

.NET 4.0, и это расширение оболочки
Когда выбран файл, мой обработчик контекстного меню получает сопоставленный путь к диску, но мне нужен UNC путь слишком долго объяснять. Есть ли способ получить путь UNC от сопоставленного диска. В качестве альтернативы, я могу перечислить все подключенные диски и то, что они сопоставляют, чтобы на основе буквы диска я мог найти эту информацию.Как я могу получить UNC-путь к файлу, который находится на подключенном сетевом диске

ответ

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 
    } 
}