C#マッピングネットワークドライブ
9009 ワード
using System.Runtime.InteropServices;
使用方法:
Program.WNetReflectDrive("z:", @"\\192.168.0.1\XXXX", "admin", "");
1 [StructLayout(LayoutKind.Sequential)]
2 public class NetResource
3 {
4 public int dwScope;
5 public int dwType;
6 public int dwDisplayType;
7 public int dwUsage;
8 public string LocalName;
9 public string RemoteName;
10 public string Comment;
11 public string provider;
12 }
13 [DllImport("mpr.dll", CharSet = CharSet.Unicode, SetLastError = true)]
14 public static extern int WNetGetConnection(
15 [MarshalAs(UnmanagedType.LPTStr)] string localName,
16 [MarshalAs(UnmanagedType.LPTStr)] StringBuilder remoteName,
17 ref int length);
18
19 [DllImport("mpr.dll", CharSet = CharSet.Ansi)]
20 private static extern int WNetAddConnection2(NetResource netResource, string password, string username, int flag);
21 [DllImport("mpr.dll", CharSet = CharSet.Ansi)]
22 private static extern int WNetCancelConnection2(string lpname, int flag, bool force);
23
24 /// <summary>
25 ///
26 /// </summary>
27 /// <param name="localName"> U:</param>
28 /// <param name="remotePath"> \\\\172.18.118.106\\f</param>
29 /// <param name="userName"> </param>
30 /// <param name="password"> </param>
31 /// <returns>true ,false </returns>
32 public static bool WNetReflectDrive(string localName, string remotePath, string userName, string password)
33 {
34 NetResource netResource = new NetResource();
35 netResource.dwScope = 2;
36 netResource.dwType = 0x1;
37 netResource.dwDisplayType = 3;
38 netResource.dwUsage = 1;
39 netResource.LocalName = localName;
40 netResource.RemoteName = remotePath;
41 netResource.provider = null;
42 int ret = WNetAddConnection2(netResource, password, userName, 0);
43 if (ret == 0)
44 return true;
45 return false;
46 }
使用方法:
Program.WNetReflectDrive("z:", @"\\192.168.0.1\XXXX", "admin", "");