C# 远程拷贝文件

使用net use 命令实现远程机器的文件复制。
比如,从机器A操作实现把机器B的文件拷贝到机器A上,需要把机器B文件夹加上机器A的用户权限。

public static bool Ping(string remoteHost)
 <wbr> <wbr>{<br> <wbr> <wbr> <wbr>bool Flag = false;<br> <wbr> <wbr> <wbr>Process proc = new Process();<br> <wbr> <wbr> <wbr>try<br> <wbr> <wbr> <wbr>{<br> <wbr> <wbr> <wbr> <wbr>proc.StartInfo.FileName = "cmd.exe";<br> <wbr> <wbr> <wbr> <wbr>proc.StartInfo.UseShellExecute = false;<br> <wbr> <wbr> <wbr> <wbr>proc.StartInfo.RedirectStandardInput = true;<br> <wbr> <wbr> <wbr> <wbr>proc.StartInfo.RedirectStandardOutput = true;<br> <wbr> <wbr> <wbr> <wbr>proc.StartInfo.RedirectStandardError = true;<br> <wbr> <wbr> <wbr> <wbr>proc.StartInfo.CreateNoWindow = true;<br> <wbr> <wbr> <wbr> <wbr>proc.Start();<br> <wbr> <wbr> <wbr> <wbr>string dosLine = @"ping -n 1 " + remoteHost;<br> <wbr> <wbr> <wbr> <wbr>proc.StandardInput.WriteLine(dosLine);<br> <wbr> <wbr> <wbr> <wbr>proc.StandardInput.WriteLine("exit");<br> <wbr> <wbr> <wbr> <wbr>while (proc.HasExited == false)<br> <wbr> <wbr> <wbr> <wbr>{<br> <wbr> <wbr> <wbr> <wbr> <wbr>proc.WaitForExit(500);<br> <wbr> <wbr> <wbr> <wbr>}<br> <wbr> <wbr> <wbr> <wbr>string pingResult = proc.StandardOutput.ReadToEnd();<br> <wbr> <wbr> <wbr> <wbr>if (pingResult.IndexOf("(0% loss)") != -1)<br> <wbr> <wbr> <wbr> <wbr>{<br> <wbr> <wbr> <wbr> <wbr> <wbr>Flag = true;<br> <wbr> <wbr> <wbr> <wbr>}<br> <wbr> <wbr> <wbr> <wbr>proc.StandardOutput.Close() ;<br> <wbr> <wbr> <wbr>}<br> <wbr> <wbr> <wbr>catch (Exception ex)<br> <wbr> <wbr> <wbr>{<br> <wbr> <wbr> <wbr>}<br> <wbr> <wbr> <wbr>finally<br> <wbr> <wbr> <wbr>{<br> <wbr> <wbr> <wbr> <wbr>try<br> <wbr> <wbr> <wbr> <wbr>{<br> <wbr> <wbr> <wbr> <wbr> <wbr>proc.Close();<br> <wbr> <wbr> <wbr> <wbr> <wbr>proc.Dispose();<br> <wbr> <wbr> <wbr> <wbr>}<br> <wbr> <wbr> <wbr> <wbr>catch<br> <wbr> <wbr> <wbr> <wbr>{<br> <wbr> <wbr> <wbr> <wbr>}<br> <wbr> <wbr> <wbr>}<br> <wbr> <wbr> <wbr>return Flag;<br> <wbr> <wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

 <wbr> <wbr>public static bool Connect(string remoteHost, string userName, string passWord)<br> <wbr> <wbr>{<br> <wbr> <wbr> <wbr>if(!Ping(remoteHost))<br> <wbr> <wbr> <wbr>{<br> <wbr> <wbr> <wbr> <wbr>return false;<br> <wbr> <wbr> <wbr>}<br> <wbr> <wbr> <wbr>bool Flag = true;<br> <wbr> <wbr> <wbr>Process proc = new Process();<br> <wbr> <wbr> <wbr>try<br> <wbr> <wbr> <wbr>{<br> <wbr> <wbr> <wbr> <wbr>proc.StartInfo.FileName = "cmd.exe";<br> <wbr> <wbr> <wbr> <wbr>proc.StartInfo.UseShellExecute = false;<br> <wbr> <wbr> <wbr> <wbr>proc.StartInfo.RedirectStandardInput = true;<br> <wbr> <wbr> <wbr> <wbr>proc.StartInfo.RedirectStandardOutput = true;<br> <wbr> <wbr> <wbr> <wbr>proc.StartInfo.RedirectStandardError = true;<br> <wbr> <wbr> <wbr> <wbr>proc.StartInfo.CreateNoWindow = true;<br> <wbr> <wbr> <wbr> <wbr>proc.Start();<br> <wbr> <wbr> <wbr> <wbr>string dosLine = @"net use \\" + remoteHost + " " + passWord + " " + " /user:" + userName + "&gt;NUL";<br> <wbr> <wbr> <wbr> <wbr>proc.StandardInput.WriteLine(dosLine);<br> <wbr> <wbr> <wbr> <wbr>proc.StandardInput.WriteLine("exit");<br> <wbr> <wbr> <wbr> <wbr>while (proc.HasExited == false)<br> <wbr> <wbr> <wbr> <wbr>{<br> <wbr> <wbr> <wbr> <wbr> <wbr>proc.WaitForExit(1000);<br> <wbr> <wbr> <wbr> <wbr>}<br> <wbr> <wbr> <wbr> <wbr>string errormsg = proc.StandardError.ReadToEnd();<br> <wbr> <wbr> <wbr> <wbr>if (errormsg != "")<br> <wbr> <wbr> <wbr> <wbr>{<br> <wbr> <wbr> <wbr> <wbr> <wbr>Flag = false;<br> <wbr> <wbr> <wbr> <wbr>}<br> <wbr> <wbr> <wbr> <wbr>proc.StandardError.Close() ;<br> <wbr> <wbr> <wbr>}<br> <wbr> <wbr> <wbr>catch (Exception ex)<br> <wbr> <wbr> <wbr>{<br> <wbr> <wbr> <wbr> <wbr>Flag = false;<br> <wbr> <wbr> <wbr>}<br> <wbr> <wbr> <wbr>finally<br> <wbr> <wbr> <wbr>{<br> <wbr> <wbr> <wbr> <wbr>try<br> <wbr> <wbr> <wbr> <wbr>{<br> <wbr> <wbr> <wbr> <wbr> <wbr>proc.Close();<br> <wbr> <wbr> <wbr> <wbr> <wbr>proc.Dispose();<br> <wbr> <wbr> <wbr> <wbr>}<br> <wbr> <wbr> <wbr> <wbr>catch<br> <wbr> <wbr> <wbr> <wbr>{<br> <wbr> <wbr> <wbr> <wbr>}<br> <wbr> <wbr> <wbr>}<br> <wbr> <wbr> <wbr>return Flag;<br> <wbr> <wbr>}<br>这两个方法是对机器B建立连接,连接成功后,用File.Copy就可以了<br>if (Ping("机器B"))<br> <wbr> <wbr> <wbr>{<br> <wbr> <wbr> <wbr> <wbr>if (Connect("机器B","机器A用户","机器A用户访问密码"))<br> <wbr> <wbr> <wbr> <wbr>{<br> <wbr> <wbr> <wbr> <wbr> <wbr>File.Copy("\\<a href="http://www.cnblogs.com/wangdetian168/admin/file://filename%22,%22%C3%A6%C2%9C%C2%BA%C3%A5%C2%99%C2%A8a%C3%A5%C2%AD%C2%98%C3%A6%C2%94%C2%BE%C3%A6%C2%96%C2%87%C3%A4%C2%BB%C2%B6%C3%A5%C2%AE%C2%8C%C3%A6%C2%95%C2%B4%C3%A8%C2%B7%C2%AF%C3%A5%C2%BE%C2%84%22,true/"><font color="#2e9ce9">机器B\文件路径\文件名称","机器A存放文件完整路径",true</font></a>);<br> <wbr> <wbr> <wbr> <wbr>}<br> <wbr> <wbr> <wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值