要映射一个网络目录为本地驱动器,需要调用系统DLL的WNetAddConnection2函数来进行添加。
首先,系统函数的申明如下:
using System.Runtime.InteropServices;
[DllImport("mpr.dll", EntryPoint="WNetAddConnection2")]
public static extern uint WNetAddConnection2(
[In] NETRESOURCE lpNetResource,
string lpPassword,
string lpUsername,
uint dwFlags);
[DllImport("Mpr.dll")]
public static extern uint WNetCancelConnection2(
string lpName,
uint dwFlags,
bool fForce);
[StructLayout(LayoutKind.Sequential)]
public class NETRESOURCE
{
public int dwScope;
public int dwType;
public int dwDisplayType;
public int dwUsage;
public string LocalName;
public string RemoteName;
public string Comment;
public string Provider;
}
添加映射网络驱动器调用的代码如下:
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 = yourNetworkPath;
myNetResource.Provider = null;
uint nret = WNetAddConnection2( myNetResource, pwd, username, 0);
注意:如果正确,返回值是0;否则错误。
删除映射网络驱动器调用的代码如下:
uint nret = WNetCancelConnection2( yourNetDriveName, 1, true);