Разрешить букву диска Windows для пути (сабст и сеть)

Интересно, существует ли универсальный способ разрешения пути с использованием буквы диска (например,X:\foo\bar.txt) в эквивалентный UNC-путь, который может быть одним из следующих:

X:\foo\bar.txt еслиX: реальный диск (то есть жесткий диск, флешка и т. д.)\\server\share\foo\bar.txt еслиX: это сетевой диск, установленный на\\server\shareC:\xyz\foo\bar.txt еслиX: является результатомSUBST отображение командX: вC:\xyz

Я знаю, что есть частичные решения, которые будут:

Разрешить сетевой диск (см., Например,вопрос 556649 который опирается на)WNetGetUniversalName

РазрешитьSUBST буква диска (см.QueryDosDevice который работает как положено, но не возвращает UNC-пути для таких вещей, как локальные диски или сетевые диски).

Я упускаю какой-то простой способ реализации этого разрешения диска буквы в Win32? Или я действительно должен связываться с обоимиWNetGetUniversalName а такжеQueryDosDevice получить то, что мне нужно?

Ответы на вопрос(2)

Ваш ответ на вопрос