Как определить, был ли путь к каталогу SUBST'd

Как я могу выяснить, находится ли файл в папке, которая была SUBST'ed или расположена в пользовательской папке с помощью C#?

6
задан Peter Mortensen 30 June 2017 в 17:19
поделиться

3 ответа

Я думаю, вам нужно P/Invoke QueryDosDevice() для буквы диска. Subst drives вернет символическую ссылку, подобную \(?\C:\blah). Префикс \?\ указывает на замену, остальное дает диск+директорию.

3
ответ дан 17 December 2019 в 02:24
поделиться

Если SUBST запускается без параметров, он создает список всех текущих замен. Получите список и сравните свой каталог со списком.

Также существует проблема сопоставления тома с каталогом. Я никогда не пытался их обнаружить, но каталоги точек монтирования действительно отображаются иначе, чем обычные каталоги, поэтому они должны иметь какой-то другой атрибут, и это можно было бы обнаружить.

1
ответ дан 17 December 2019 в 02:24
поделиться

Я думаю, у вас есть несколько вариантов -

Через классы System.Management: http://briancaos.wordpress.com/2009/03/05/get-local-path-from-unc-path/

Или

Через P/Invoking этой MAPI функции: ScUNCFromLocalPath http://msdn.microsoft.com/en-us/library/cc842520.aspx

1
ответ дан 17 December 2019 в 02:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: