C#映射网络驱动器

本文介绍了如何使用C#调用Windows API函数WNetAddConnection2和WNetCancelConnection2来映射和取消网络驱动器。通过NETRESOURCE结构体定义网络资源,并提供了示例代码进行详细解释,包括设置连接参数、用户名、密码和本地盘符。此外,还补充了通过C#访问局域网共享文件夹的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

调用例子

            NETRESOURCE myNetResource = new NETRESOURCE();

            myNetResource.dwScope = 2;       //2:RESOURCE_GLOBALNET           

            myNetResource.dwType = 1;       //1:RESOURCETYPE_ANY            

            myNetResource.dwDisplayType = 3; //3:RESOURCEDISPLAYTYPE_GENERIC          

            myNetResource.dwUsage = 1;       //1: RESOURCEUSAGE_CONNECTABLE    

            myNetResource.LocalName = "T:";

            myNetResource.RemoteName = @"//10.72.27.22/test";

            myNetResource.Provider = null;

            uint nret = WNetAddConnection2(myNetResource, "tt", "tt", 0);

 

    删除映射网络驱动器调用的代码如下:

    uint nret = WNetCancelConnection2( yourNetDriveName, 1, true);

 

 

其中关键技术是调用了两个Windows API函数WNetAddConnection2和WNetCancelConnection2,下面分别加以介绍:

1、WNetAddConnection2

其作用是创建一个同网络资源的连接,当调用成功时函数返回0。其参数说明如下:

lpNetResource:数据类型是结构NETRESOURCE,该结构中的各个字段对要连接的网络资源进行了定义,包括远程计算机共享文件夹的名字(如图2所示,在“远程共享文件夹”文本框中的“//1.1.1.1/share”),以及本地系统为网络驱动器分配的盘符“X:”,等等;

lpPassword:数据类型为string,该参数是个可选参数,用来设置网络密码,对应本程序控件Text3中的文本。如果该参数的值等于vbNullString,则表示采用系统当前登录用户的默认密码;如果是一个空字符串,则表示不需要任何密码就可访问网络资源;

lpUserName:数据类型为string,指定用于网络连接的用户名,对应本程序控件Text2中的文本。如果该参数的值等于vbNullString,则表示使用系统当前的登录用户名;

dwFlags:数据类型为long,该参数可以设为0,也可以指定常量CONNECT_UPDATE_PROFILE(表示创建永久性的网络连接)。

 

2、WNetCancelConnection2

其作用是断开一个网络连接,当调用成功时函数返回0。其参数说明如下:

lpName:数据类型是string,用来指定已连接资源的远程名称或本地名称,具体在本文中就是给远程共享文件夹分配的盘符:“X:”;

dwFlags:数据类型为long,可以取两个值,0或CONNECT_UPDATE_PROFILE,如果为0,而且建立的网络连接是永久性连接,则在Windows下次重新启动时仍会重新连接;

fForce:数据类型为long,如果为True,那么,即使连接的网络资源上有正在打开的文件或作业,也强制断开网络连接,这样就会造成数据的丢失、不完整性,建议将该参数的值设为False,如程序中所做。

 

 

 

==========================================

 补充: 通过C#程序访问局域网中共享文件夹。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值