У меня была похожая проблема, и я решил ее, используя следующий код:
Shell32.Shell shell = new Shell32.Shell();
((Shell32.Folder2)shell.NameSpace("X:")).Self.Name = "Friendly Label";
Со ссылкой на COM -> Microsoft Shell Controls and Automation.Это в основном C # представление старого кода VBS, которое у меня было
Set oShell = CreateObject("Shell.Application")
oShell.NameSpace("X:").Self.Name = "Friendly Label"
Разница, однако, в том, что реализация NameSpace на C # по какой-то причине возвращает объект папки , тогда как все реализации VB кажутсявернуть объект folder2 .Только папка 2 обладает свойством «Self», поэтому требуется дополнительное приведение.
Кроме того, как было указано в одном из комментариев, это работает только в квартире STA, поэтому метод Main () имеетбыть украшенным [STAThread].
Я надеюсь, что отвечать на такие старые вопросы неплохо, но я был очень расстроен, что нигде не нашел решения.