如何使用Windows Shell API和C#更改映射驱动器的友好名称?我的实际问题是我正在处理没有UNC路径的断开连接的网络驱动器,因此重命名它的唯一方法是从资源管理器中进行,但是我想以编程方式进行.解决方法:我遇到了类似...
如何使用Windows Shell API和C#更改映射驱动器的友好名称?我的实际问题是我正在处理没有UNC路径的断开连接的网络驱动器,因此重命名它的唯一方法是从资源管理器中进行,但是我想以编程方式进行.
解决方法:
我遇到了类似的问题,并使用以下代码解决了该问题:
Shell32.Shell shell = new Shell32.Shell();
((Shell32.Folder2)shell.NameSpace("X:")).Self.Name = "Friendly Label";
参考COM-> Microsoft Shell控件和自动化.
基本上,这是我使用的旧VBS代码的C#表示形式
Set oShell = CreateObject("Shell.Application")
oShell.NameSpace("X:").Self.Name = "Friendly Label"
但是区别在于,由于某种原因,NameSpace的C#实现返回folder object,而所有VB实现似乎都返回folder2 object.只有folder2具有’Self’属性,因此需要进行额外的强制转换.
另外,正如其中一条评论中所指出的那样,这仅在STA公寓内有效,因此Main()方法必须使用[STAThread]装饰.
我希望回答这样的老问题不是坏习惯,但是我很沮丧,没有在任何地方找到解决方案.
本文标题为:c#-使用Shell API重命名映射的驱动器
基础教程推荐
- C#实现冒泡排序和插入排序算法 2023-05-31
- c# – 如何使用动态Linq实现tsql“IN”等效 2023-11-26
- c# – SqlDataSource中的动态WHERE子句 2023-11-23
- C sharp (#) 数据类型获取方式 2023-07-05
- 浅谈C#索引器 2023-05-06
- dotnet core linux 接入支付宝H5支付,提示:System.PlatformNotSupportedException","Message":" 2023-09-26
- c# – 加速LINQ to SQL查询 2023-11-25
- 详解c# SpinWait 2023-03-14
- C#的十种语法糖介绍 2023-05-22
- C#调用js库的方法小结 2023-07-18