2009-02-17 4 views
12

Как преобразовать путь с буквой диска, например W:\Path\Share, в эквивалентный путь, например \\server\Share\File. .Net?Как преобразовать путь с буквой диска в UNC-путь

В командной строке вы можете запустить net use и отобразить сопоставления. Как мне получить эту информацию в .Net?

ответ

6

Вы можете использовать P/Invoke и вызвать функцию native, такую ​​как WNetGetUniversalName.

+4

Функция WNetGetUniversalName принимает путь к сети для сетевого ресурса и возвращает структуру информации, которая содержит более универсальную форму имени. Это работает только для путей, которые вы уже использовали. Кажется, что это не работает для локальных путей. т.е. если вы делите d: \ shared как \\ mymachine \ shared и вы вызываете WNetGetUniversalName, он терпит неудачу. – GrendleM

2

Чтобы получить список общих папок на текущей машине в .NET вы должны вариантов:

Обратите внимание, что процесс вызова будет запущен в контексте пользователя с правами администратора, чтобы это работало.

Смежные вопросы