C#将目录复制到另一台服务器

时间:2010-08-13 09:59:23

标签: c# copy

在numerus尝试使用robocopy尝试将文件镜像到另一台服务器作为SQL作业失败后(不要问)。

作业必须每15分钟运行一次并作为SQL作业运行,以复制所有事务日志和备份文件,因此作业失败,它在SQL中报告,然后由MOM检查。这个工作不能每次复制整个目录,因为它只需要镜像directroy大约50gb,换句话说,摆脱源目录中不存在的文件并复制新文件。

有人建议c#是最好的方式(对我来说这是一个很好的学习曲线)。但我的c#knowlege非常小。

很抱歉,我提到我们是在受限制的网络上,而且Robocopy是唯一一个ragerding应用程序的选项。 FTP也被禁止。

帮助

由于

6 个答案:

答案 0 :(得分:2)

如果我理解你,你需要将一个目录复制到某个服务器,但是,由于该目录的大小为50Gb,你只需要移动特定的文件。

如果是这种情况,那么我建议你看看FileSystemWatcher。它基本上“监听”对给定目录中的文件所做的任何更改,并且您可以使用这些操作来了解在哪个文件上完成(创建,编辑,删除)的操作。

答案 1 :(得分:1)

您可以自己编写程序或安装Microsoft的工具TyncToy此工具允许您创建需要同步的文件夹对。第一次使用GUI设置文件夹对但后面可以从命令行调用该工具

答案 2 :(得分:1)

作为一个非C#选项 - 我不确定为什么这会有所帮助 - 还有rsync。我没有在Windows上使用它,但我在Linux上使用它来做这种事情。它可以作为守护进程/客户端运行,以分割机器之间的工作。但是,它似乎只能通过cygwin在Windows上使用,而不是使用本机API。

答案 3 :(得分:0)

听起来像使用FTP传输文件是个不错的选择。

以下是使用C#上传FtpWebRequest文件的教程:http://www.vcskicks.com/csharp_ftp_upload.php

答案 4 :(得分:0)

很抱歉,我提到我们是在受限制的网络上,而且Robocopy是唯一一个ragerding应用程序的选项。 FTP也被禁止。

答案 5 :(得分:0)

对于非编程类型选项,Microsoft的SyncToy可以很好地保持文件目录同步。有关如何处理更改(更新/删除)的不同文件夹选项。我将它与Task Scheduler结合使用,以便在白天的预定时间运行。此外,我还在桌面上保留了一个快捷方式,以便我可以在必要时“超时”运行它。

编辑:

如果您不喜欢SyncToy UI,可以使用底层框架(Microsoft Sync Framework)http://msdn.microsoft.com/en-us/sync/bb887623.aspx开发自己的UI或在后台使用它。