using System.Runtime.InteropServices;
using System.IO;
using System;public class WNetHelper
{
[DllImport("mpr.dll", EntryPoint = "WNetAddConnection2")]
private static extern uint WNetAddConnection2(NetResource lpNetResource, string lpPassword, string lpUsername, uint dwFlags); [DllImport("Mpr.dll", EntryPoint = "WNetCancelConnection2")]
private 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 lpLocalName; public string lpRemoteName; public string lpComment; public string lpProvider;
} /// <summary>
/// 为网络共享做本地映射
/// </summary>
/// <param name="username">访问用户名</param>
/// <param name="password">访问用户密码</param>
/// <param name="remoteName">网络共享路径</param>
/// <param name="localName">本地映射盘符</param>
/// <returns></returns>
public static uint WNetAddConnection(string username, string password, string remoteName, string localName)
{
NetResource netResource = new NetResource(); netResource.dwScope = 2;
netResource.dwType = 1;
netResource.dwDisplayType = 3;
netResource.dwUsage = 1;
netResource.lpLocalName = localName;
netResource.lpRemoteName = remoteName.TrimEnd('/');
uint result = WNetAddConnection2(netResource, password, username, 0); return result;
} public static uint WNetCancelConnection(string name, uint flags, bool force)
{
uint nret = WNetCancelConnection2(name, flags, force); return nret;
} public static bool CreateDirectory(string path)
{
//LogonImpersonate imper = new LogonImpersonate("administrator", "1234");
uint state = 0;
if (!Directory.Exists("Z:"))
{
state = WNetHelper.WNetAddConnection("LIJIELUN//administrator", "1234", @"//10.36.0.122/yedmis_file", "Z:");
}
if (state.Equals(0))
{
Directory.CreateDirectory(path);
return true;
}
else
{
throw new Exception("添加网络驱动器错误,错误号:" + state.ToString());
}
}附一下源码
using System.IO;
using System;public class WNetHelper
{
[DllImport("mpr.dll", EntryPoint = "WNetAddConnection2")]
private static extern uint WNetAddConnection2(NetResource lpNetResource, string lpPassword, string lpUsername, uint dwFlags); [DllImport("Mpr.dll", EntryPoint = "WNetCancelConnection2")]
private 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 lpLocalName; public string lpRemoteName; public string lpComment; public string lpProvider;
} /// <summary>
/// 为网络共享做本地映射
/// </summary>
/// <param name="username">访问用户名</param>
/// <param name="password">访问用户密码</param>
/// <param name="remoteName">网络共享路径</param>
/// <param name="localName">本地映射盘符</param>
/// <returns></returns>
public static uint WNetAddConnection(string username, string password, string remoteName, string localName)
{
NetResource netResource = new NetResource(); netResource.dwScope = 2;
netResource.dwType = 1;
netResource.dwDisplayType = 3;
netResource.dwUsage = 1;
netResource.lpLocalName = localName;
netResource.lpRemoteName = remoteName.TrimEnd('/');
uint result = WNetAddConnection2(netResource, password, username, 0); return result;
} public static uint WNetCancelConnection(string name, uint flags, bool force)
{
uint nret = WNetCancelConnection2(name, flags, force); return nret;
} public static bool CreateDirectory(string path)
{
//LogonImpersonate imper = new LogonImpersonate("administrator", "1234");
uint state = 0;
if (!Directory.Exists("Z:"))
{
state = WNetHelper.WNetAddConnection("LIJIELUN//administrator", "1234", @"//10.36.0.122/yedmis_file", "Z:");
}
if (state.Equals(0))
{
Directory.CreateDirectory(path);
return true;
}
else
{
throw new Exception("添加网络驱动器错误,错误号:" + state.ToString());
}
}附一下源码
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货