winform把网络共享目录映射为本地驱动器&局域网内copy文件
来源:互联网 发布:php项目经验 编辑:程序博客网 时间:2024/06/05 03:12
http://blog.csdn.net/knight94/article/details/631309
要映射一个网络目录为本地驱动器,需要调用系统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);
//局域网内copy文件
private void button1_Click(object sender, EventArgs e)
{
if (Ping(remoteHost))
{
if (Connect(remoteHost,"账号","密码"))
{
File.Copy("E:\\OpenForm.txt",@"\\192.168.1.21\file\chs.txt", true);//将OpenForm.txt内容copy到chs.txt中
}
}
}
public static bool Ping(string remoteHost)
{
bool Flag = false; //是否在线
Ping ping = new Ping();
PingReply pingReply = ping.Send(remoteHost);
if (pingReply.Status == IPStatus.Success)
{
Flag = true;
Console.WriteLine("当前在线,已ping通!");
}
else
{
Console.WriteLine("不在线,ping不通!");
}
return Flag;
}
public static bool Connect(string remoteHost, string userName, string passWord)
{
if (!Ping(remoteHost))
{
return false;
}
bool Flag = true;
Process proc = new Process();
try
{
proc.StartInfo.FileName = "cmd.exe";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
string dosLine = @"net use \\" + remoteHost + " " + passWord + " " + " /user:" + userName + ">NUL";
proc.StandardInput.WriteLine(dosLine);
proc.StandardInput.WriteLine("exit");
while (proc.HasExited == false)
{
proc.WaitForExit(1000);
}
string errormsg = proc.StandardError.ReadToEnd();
if (errormsg != "")
{
Flag = false;
}
proc.StandardError.Close();
}
catch (Exception ex)
{
Flag = false;
}
finally
{
try
{
proc.Close();
proc.Dispose();
}
catch
{
}
}
return Flag;
}
- winform把网络共享目录映射为本地驱动器&局域网内copy文件
- 如何把网络共享目录映射为本地驱动器
- 如何把网络共享目录映射为本地驱动器(续)
- [愚翁专栏]如何把网络共享目录映射为本地驱动器
- [愚翁专栏]如何把网络共享目录映射为本地驱动器(续)
- 映射网络驱动器共享网络硬盘
- 把其它地址的共享目录映射到本地
- linux通过sshfs把远程主机的文件系统映射到本地的目录中(构建文件共享目录)
- 映射网络驱动器如何共享别人电脑上的共享文件
- 将CentOS目录映射为Windows驱动器
- 有关局域网映射网络驱动器自动断线的解决办法
- 局域网内电脑共享文件
- 如何将网络上的共享文件映射到本地
- Windows下如何将服务器目录映射到本地驱动器
- IIS虚拟目录实现与文件服务器网络驱动器映射共享
- IIS虚拟目录实现与文件服务器网络驱动器映射共享
- win10怎么映射网络驱动器,怎么连接共享文件夹
- 如何备份数据库到本地映射网络驱动器
- poj上的dp专题
- 命令行操作组策略
- jquery ajax中data参数的传递
- Json对象与Json字符串互转
- 剑指offer系列之四十八:把字符串转成整数
- winform把网络共享目录映射为本地驱动器&局域网内copy文件
- Android px、dp、sp之间相互转换
- c#实现图片生成缩略图
- Android 轮询实践
- linux链接文件 -- ln
- hbase的 HTablePool
- 【mysql监控】查看mysql库大小,表大小,索引大小
- JavaScript笔记
- 前台UI的总结