using System.IO;

        /// <summary>
/// 远程登陆服务器
/// </summary>
/// <param name="remoteHost">远程服务器IP路径</param>
/// <param name="userName"></param>
/// <param name="passWord"></param>
/// <returns>是否登陆成功</returns>
public static bool ConnectServer(string remoteHost, string userName, string passWord)
{
bool Flag = false;
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;
proc.StandardInput.WriteLine(dosLine);
proc.StandardInput.WriteLine("exit");
while (!proc.HasExited)
{
proc.WaitForExit();
}
proc.StandardError.Close(); Flag = true;
}
catch (Exception ex)
{
throw ex;
}
finally
{
proc.Close();
proc.Dispose();
} return Flag;
}
//Connect(@"\\192.168.15.90", "administrator", "123")//连接服务器 /// <summary>
/// 递归-拷贝文件夹及文件
/// </summary>
/// <param name="sourceDirectoryUrl">源路径</param>
/// <param name="copyDirectoryUrl">复制路径</param>
private void CopyDirectory(string sourceDirectoryUrl, string copyDirectoryUrl)
{
try
{
string folderName = sourceDirectoryUrl.Substring(sourceDirectoryUrl.LastIndexOf("\\") + ); string desfolderdir = copyDirectoryUrl + "\\" + folderName; if (copyDirectoryUrl.LastIndexOf("\\") == (copyDirectoryUrl.Length - ))
{
desfolderdir = copyDirectoryUrl + folderName;
} string[] filenames = Directory.GetFileSystemEntries(sourceDirectoryUrl); foreach (string file in filenames)// 遍历所有的文件和目录
{
if (Directory.Exists(file))// 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
{ string currentdir = desfolderdir + "\\" + file.Substring(file.LastIndexOf("\\") + );
if (!Directory.Exists(currentdir))
{
Directory.CreateDirectory(currentdir);
} CopyDirectory(file, desfolderdir);
}
else // 否则直接copy文件
{
string srcfileName = file.Substring(file.LastIndexOf("\\") + ); srcfileName = desfolderdir + "\\" + srcfileName; if (!Directory.Exists(desfolderdir))
{
Directory.CreateDirectory(desfolderdir);
} File.Copy(file, srcfileName, true); }
}//foreach MessageBox.Show("文件同步成功!"); }
catch(Exception ex)
{
MessageBox.Show("文件同步失败! 错误提示:"+ex.Message);
}
finally
{
this.Dispose();
this.Close();
} } //文件同步按钮
private void synchronization_Btn_Click(object sender, EventArgs e)
{
//连接远程服务器
if (ConnectServer(@"\\192.168.0.150\文件同步测试区", "lgq0821", ""))
{
//同步文件
CopyDirectory(@"F:\文件同步测试区\A服务器\工具包", @"\\192.168.0.150\文件同步测试区");
}
else
{
MessageBox.Show("身份验证失败!");
} }

C#实现服务器间文件同步的更多相关文章

  1. rsync+sersync+inotify实现服务器间文件同步之一

    rsync+sersync+inotify实现服务器间文件同步之一:rsync安装配置 2013年12月14日 ⁄ Linux管理, 服务器集群技术 ⁄ 共 4925字 ⁄ rsync+sersync ...

  2. 使用inotify+rsync实现服务器间文件同步

      1. rsync 1.1 什么是rsync   rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.它使用所谓的“Rsync演算法”来使本地和远程两个主机之间的文件达到 ...

  3. windows服务器间文件同步搭建步骤搜集

    Rsync https://www.cnblogs.com/janas/p/3321087.html https://yq.aliyun.com/ziliao/110867 subersion协议 h ...

  4. C# 实现文件(夹)在ftp服务器间的同步【无需将文件(夹)保存到本地】

    C#实现不同ftp服务器间文件(夹)同步 图1 实现不同ftp服务器间文件(夹)同步的实现思路图 /// <summary> /// 将文件夹1从ftp服务器1移到ftp服务器2文件夹2 ...

  5. 使用rsync实现不同Linux服务器间目录同步

    实现目标:    A 服务器上 /opt/web 目录,与B服务器上 /opt/web目录实现同步.即:B主动与A进行同步.   OS: Reaht AS4   A Server  192.168.1 ...

  6. Linux 之 rsync实现服务器的文件同步

    rsync实现服务器的文件同步 参考文献链接: 一.rsync实现负载均衡集群文件同步,搭建线上测试部署环境 二.rsync. 三.rsync常见错误. 四.rsync 安装使用详解. 环境部署: 服 ...

  7. Linux服务器间文件实时同步的实现

    使用场景 现有服务器A和服务器B,如果服务器A的指定目录(例如 /home/paul/rsync/ )中的内容发生变更(增删改和属性变更),实时将这些变更同步到服务器B的目标目录中(例如 /home/ ...

  8. cwRsync window下的跨服务器的文件同步

    cwRsync 是window下的文件同步软件,可以跨服务器运行,第一次运行的时候是全部备份同步,之后的同步采用的是增量同步 这个软件分为服务端和客户端. 服务器是需要同步的文件源, 客户端相当于是备 ...

  9. Linux服务器间文件传输

    利用scp传输文件 1.从服务器下载文件 scp username@servername:/path/filename /tmp/local_destination 例如scp codinglog@1 ...

随机推荐

  1. 定时调度之Quartz

    工作中我们经常碰到定时或者固定时间点去做一些事情,然后每天到时间点就会去做这样的事情,如果理解这样的场景,我们就要引入今天我们的主角Quartz,其实这个跟数据库的作业类似,但是不仅仅局限于数据库. ...

  2. jQuery Validate验证框架详解,提交前验证

    现在都用h5表单进行验证了,以下方式仅做回忆 https://www.runoob.com/jquery/jquery-plugin-validate.html <!DOCTYPE HTML P ...

  3. NBU磁带库报错代码

    Linux驱动报错"Sense Key"和"ASC and ASCQ"含义 1.Sense Keys Definitions 0x0 No sense 0x1 ...

  4. 对NetBackup 问题进行故障排除的步骤

    错误消息通常是指出哪里出现故障的手段.如果在界面上没有看到错误消息,但仍怀疑有问题,请检查报告和日志. NetBackup提供了各种报告和日志记录工具, 这些工具可提供错误消息,直接为您指出解决方案. ...

  5. springmvc 整合 netty-socketio

    1 maven <dependency> <groupId>com.corundumstudio.socketio</groupId> <artifactId ...

  6. Java 获取对象全部属性 包括 父类属性

    今天由于业务需要,看一段数据库中的表转化成用户可以看懂的数据,也就是把一些字段比如Date用ms存的,转化为'yyyy-MM-dd'这种格式,但是由于字段太多,所以利用Java反射机制自带的BeanU ...

  7. oneinstack——证书更新

    如果你安装好 oneinstack 你的定时任务就会自动添加 "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh ...

  8. Python实战之ATM+购物车

    ATM + 购物车 需求分析 ''' - 额度 15000或自定义 - 实现购物商城,买东西加入 购物车,调用信用卡接口结账 - 可以提现,手续费5% - 支持多账户登录 - 支持账户间转账 - 记录 ...

  9. 1.Java介绍

    第一章 走进Java 一.Java技术体系 Java技术体系组成部分:Java程序设计语言.Java虚拟机.Class文件格式.Java API类库 JDK:Java程序设计语言 + Java虚拟机 ...

  10. 【java异常】定时任务异常ERROR 20604 --- [ scheduling-1] o.s.s.s.TaskUtils$LoggingErrorHandler : Unexpected error occurred in scheduled task

    2019-11-20 13:20:00.006 ERROR 20604 --- [ scheduling-1] o.s.s.s.TaskUtils$LoggingErrorHandler : Unex ...