`

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>

分享到:
评论

相关推荐

    C#实现本地文件保存到另一台电脑的代码

    5. **C# 远程文件操作**:使用 `System.IO.File.Copy` 方法可以复制本地文件到远程共享位置,但需要注意的是,这种方法需要目标位置是可写的,并且有适当的权限。例如: ```csharp File.Copy("本地文件路径", "\\\\...

    远程桌面超短时间拷贝大文件

    ### 远程桌面超短时间拷贝大文件的高效技巧 在现代办公环境中,远程工作已成为常态,特别是在IT行业中,远程访问服务器或同事的计算机进行数据传输是家常便饭。然而,大文件的传输往往成为瓶颈,尤其是当网络条件不...

    C#利用WMI 控制远程计算机

    **C# 利用 WMI 控制远程计算机** Windows Management Instrumentation(WMI)是微软提供的一个管理系统资源的标准接口,允许应用程序访问和控制操作系统、硬件设备和服务等信息。C#作为.NET Framework的一部分,...

    复制文件到指定目录.zip

    在提到的“API接口练习”中,可能涉及到通过网络API来实现文件的远程复制。这通常需要调用HTTP或FTP等协议的客户端库。例如,对于HTTP,可以使用`HttpClient`类来发送POST请求,将文件作为流上传到服务器。在接收端...

    文件拷贝 网络文件传输

    本篇文章将深入探讨这两个主题,特别是针对文件夹的拷贝操作以及使用C#进行网络文件传输的方法。 首先,文件拷贝是指将一个或多个文件从一个位置复制到另一个位置的过程。在Windows操作系统中,这可以通过简单的...

    简单RAPI拷贝文件

    标题中的“简单RAPI拷贝文件”指的是使用Remote API (RAPI) 技术在个人计算机(PC)和掌上设备(PDA)之间进行文件复制。RAPI 是微软为Pocket PC和Windows CE设备开发的一套API,允许开发者在桌面系统和移动设备之间...

    内部网中不同机器间的文件拷贝方法

    // 拷贝文件 File.Copy(@"C:\\work\\AAAAA.txt", @"N:\\BBBBB.txt"); // 断开连接 cmnd = "/C NET USE N: /delete"; psi.Arguments = cmnd; p = Process.Start(psi); results = p.StandardOutput.ReadToEnd...

    在VS2008实现和WINDOWS CE 通过USB 拷贝文件

    3. **文件操作**:在VS2008中,使用C#或C++编程语言,你可以调用.NET Framework或Win32 API来处理文件操作。例如,System.IO命名空间下的FileStream、File、Directory等类可以帮助你完成读取、写入和移动文件的任务...

    RAPI实现移动设备与PC文件的拷贝

    例如,`CeRapiCopyFile`函数就是用来在PC和移动设备之间拷贝文件的。 在"两个工程,一个是从设备上拷出,一个是拷进设备"的描述中,我们可以推断出这里有两部分代码实现:一部分是将移动设备上的文件复制到PC,另一...

    Netty实现Java服务端和C#客户端联通

    在C#客户端,创建一个ClientBootstrap,指定远程服务器的地址和端口,同样配置Handler以处理发送和接收的数据。 一旦连接建立,双方就可以通过发送和接收自定义的ByteBuf或Message对象进行通信。在Netty中,可以...

    C#编写的FTP操作类

    `CopyOrMoveFile()`方法则实现了FTP服务器上的文件拷贝和移动。 在进行FTP操作时,进度跟踪也是一个常见的需求。FTP操作类通常会提供进度回调函数或事件,以便在上传或下载过程中实时获取文件传输的进度,例如通过...

    VS2005 远程调试 攻略

    - 将需要调试的程序的Debug版本和相应的pdb文件拷贝到**远程计算机**上。 ##### 5. 附加到远程进程 - 在**本地计算机**上的VS2005中选择“工具”-&gt;“附加到进程”。 - 选择“远程”传输,输入远程计算机的主机名或...

    WinCe屏幕拷贝程序(源代码)

    在Windows CE(简称WinCE)操作系统中,开发一个屏幕拷贝程序是一项常见的需求,尤其对于系统测试、故障排查或是远程监控等应用场景。本程序通过源代码实现,利用线程机制来实现在特定时间间隔内自动捕获并保存屏幕...

    C#下的 ReportViewer程序的打开与部署出错原因

    你需要确保将所有必要的DLL文件(如压缩包中的"Microsoft.ReportViewer11.0±¨±íÏà¹ØDLL"和"Microsoft.ReportViewer11.0报表相关DLL")拷贝到你的应用程序的发布目录,确保它们与应用程序的可执行文件在同一...

    C#微软培训资料

    第一部分 C#语言概述.4 第一章 第一章第一章 第一章 .NET 编 编 编程语言 程语言编程语言 程语言 C#.4 1.1 Microsoft.NET——一场新的革命.4 1.2 .NET 与 C#.6 1.3 C#语言的特点.8 1.4 小 结 .11...

    U盘插入 自动运行 搜索硬盘数据 拷贝到U盘

    5. **无显示器设备的文件拷贝**:在无显示器设备中,如服务器或嵌入式系统,文件拷贝可能需要通过远程控制或命令行界面进行。这样的环境通常需要更严格的访问控制和审计记录,以防止未经授权的数据访问或转移。 6. ...

    C# 实现局域网视频监控(Socket 编程)

    本系统以 C/S 架构采用 Socket 技术开发,可以运用本软件在局域网中实施监控管理。服务器端可以实时观察远程...除了这些,服务器端可以执行更高级的操作:即浏览客户端文件系统,并可以任意拷贝指定的客户端目录。

    c#屏幕抓图

    在现代软件开发中,屏幕抓图功能被广泛应用于各种场景,如自动化测试、屏幕录制、远程协助等。利用C#进行屏幕抓图是一种常见且实用的技术手段。本文将详细介绍如何使用纯代码的方式在C#中实现屏幕抓图的功能。 ####...

    windows文件遍历

    通过网络位置或映射网络驱动器,用户可以访问远程文件系统,操作方式与本地文件类似。 综上所述,Windows文件遍历是一个涵盖广泛的主题,涉及文件系统、路径、搜索、排序、权限等多个方面,无论对普通用户还是...

    设计模式C#-Code版

    "设计模式C#-Code版"这个压缩包文件包含的是Gang of Four(GoF)提出的23种经典设计模式的C#实现,这对于学习和理解这些模式提供了实际的代码参考。 1. **单例模式**:确保一个类只有一个实例,并提供一个全局访问...

Global site tag (gtag.js) - Google Analytics