如何使用Windows Shell API和C#更改映射驱动器的友好名称?我的实际问题是我正在处理没有UNC路径的断开连接的网络驱动器,因此重命名它的唯一方法是从资源管理器中进行,但是我想以编程方式进行.解决方法:我遇到了类似...
![](https://oss.womengda.net/imgfile/2310/1ER2K4443D0-3V40.jpg)
如何使用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重命名映射的驱动器
![](/xwassets/images/pre.png)
![](/xwassets/images/next.png)
- c# 通过wbemtest和WMI Code Cretor更加高效的访问WMI 2023-04-15
- C# 实现FTP客户端的小例子 2023-03-04
- WPF实现动画效果(六)之路径动画 2023-06-21
- Windows CE上的C#.NET 3.5 CF,更改DataGrid中的行背景颜色 2023-09-20
- C#创建Windows服务与服务的安装、卸载 2023-05-22
- C#中的checksum计算公式 2023-05-31
- C#中的char与string详解 2023-05-16
- C#动态加载组件后如何在开发环境中调试详解 2023-01-16
- 使用C#调用百度地图并实现坐标点的设置以及读取示例 2023-03-04
- C# 获取当前年份的周期及周期所在日期范围(推荐) 2022-12-11