微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#实现服务器间文件同步

复制代码

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(1000); } 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("\\") + 1); string desfolderdir = copyDirectoryUrl + "\\" + folderName; if (copyDirectoryUrl.LastIndexOf("\\") == (copyDirectoryUrl.Length - 1)) { 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("\\") + 1); if (!Directory.Exists(currentdir)) { Directory.CreateDirectory(currentdir); } copyDirectory(file,desfolderdir); } else // 否则直接copy文件  { string srcfileName = file.Substring(file.LastIndexOf("\\") + 1); 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","123456")) { //同步文件 copyDirectory(@"F:\文件同步测试区\A服务器\工具包",@"\\192.168.0.150\文件同步测试区"); } else { MessageBox.Show("身份验证失败!"); } }

复制代码

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐