c#开发windows服务实现自动从FTP服务器下载文件

  

最近在做一个每天定点从FTP自动下载节目。xml并更新到数据库的功能,首先想到用FileSystemWatcher来监控下载到某个目录中的文件是否发生改变,如果改变就执行相应的操作,然后用计时器来设置隔多长时间来下载。后来又想想,用windwos服务来实现。

  

<>强效果图:

  

 C #开发windows服务实现自动从FTP服务器下载文件

  

<>强执行的日志日志:

        INFO-2016/5/24 0:30:07——日志内容为:0/30/7进行时间触发   INFO-2016/5/24 1:30:07——日志内容为:1/30/7进行时间触发   INFO-2016/5/24 2:30:07——日志内容为:2/30/7进行时间触发   INFO-2016/5/24 3:30:07——日志内容为:3/30/7进行时间触发   INFO-2016/5/24 4:30:07——日志内容为:4/30/7进行时间触发   INFO-2016/5/24 5:30:07——日志内容为:5/30/7进行时间触发   INFO-2016/5/24 6:30:07——日志内容为:6/30/7进行时间触发   INFO-2016/5/24 7:30:07——日志内容为:7/30/7进行时间触发   INFO-2016/5/24 7:30:07——日志内容为:TimerEvent 01   INFO-2016/5/24 7:30:07——日志内容为:TimerEvent 01:共获取77个节目列表信息成功。   INFO-2016/5/24 7:31:08——日志内容为:服务器与本地节目列表信息进行对比开始。   INFO-2016/5/24 7:31:08——日志内容为:得到要更新的节目列表共77个   INFO-2016/5/24 7:31:08——日志内容为:FileEvent 01: BTV-1(高清). xml文件重新下载开始。   INFO-2016/5/24 7:31:08——日志内容为:FileEvent 01: BTV-1(高清)。xml文件内容已于2016/05/24 00:01进行改变并重新下载成功。   INFO-2016/5/24 7:31:08——日志内容为:FileEvent 01: BTV-1(高清). xml文件下载后的修改时间开始与服务器修改时间同步开始。   INFO-2016/5/24 7:31:08——日志内容为:FileEvent 01: BTV-1(高清). xml文件下载后的修改时间开始与服务器修改时间同步成功。   INFO-2016/5/24 7:31:08——日志内容为:FileEvent 02:中央电视台一套(高清). xml文件重新下载开始。   INFO-2016/5/24 7:31:08——日志内容为:FileEvent 02:中央电视台一套(高清)。xml文件内容已于2016/05/24 00:01进行改变并重新下载成功。   INFO-2016/5/24 7:31:08——日志内容为:FileEvent 02:中央电视台一套(高清). xml文件下载后的修改时间开始与服务器修改时间同步开始。   INFO-2016/5/24 7:31:08——日志内容为:FileEvent 02:中央电视台一套(高清). xml文件下载后的修改时间开始与服务器修改时间同步成功。   INFO-2016/5/24 7:31:33——日志内容为:FileEvent 77:黑龙江卫视(高清). xml文件重新下载开始。   INFO-2016/5/24 7:31:33——日志内容为:FileEvent 77:黑龙江卫视(高清)。xml文件内容已于2016/05/24 00:01进行改变并重新下载成功。   INFO-2016/5/24 7:31:33——日志内容为:FileEvent 77:黑龙江卫视(高清). xml文件下载后的修改时间开始与服务器修改时间同步开始。   INFO-2016/5/24 7:31:33——日志内容为:FileEvent 77:黑龙江卫视(高清). xml文件下载后的修改时间开始与服务器修改时间同步成功。   INFO-2016/5/24 8:31:08——日志内容为:8/31/8进行时间触发   INFO-2016/5/24 9:31:08——日志内容为:9/31/8进行时间触发   INFO-2016/5/24 10:31:08——日志内容为:10/31/8进行时间触发   INFO-2016/5/24 11:31:08——日志内容为:11/31/8进行时间触发   INFO-2016/5/24 12:31:08——日志内容为:12/31/8进行时间触发   INFO-2016/5/24 13:31:08——日志内容为:13/31/8进行时间触发   INFO-2016/5/24 14:31:08——日志内容为:14/31/8进行时间触发   INFO-2016/5/24 15:31:08——日志内容为:15/31/8进行时间触发   INFO-2016/5/24 16:31:08——日志内容为:16/31/8进行时间触发   INFO-2016/5/24 17:31:08——日志内容为:17/31/8进行时间触发   INFO-2016/5/24 18:31:08——日志内容为:18/31/8进行时间触发   INFO-2016/5/24 19:31:08——日志内容为:19/31/8进行时间触发   INFO-2016/5/24 20:31:08——日志内容为:20/31/8进行时间触发   INFO-2016/5/24 21:31:08——日志内容为:21/31/8进行时间触发   INFO-2016/5/24 22:31:08——日志内容为:22/31/8进行时间触发   INFO-2016/5/24 23:31:08——日志内容为:23/31/8进行时间触发      

<>强实现代码:

  

下载ftplib。dll然后项目中参照引用

        使用FtpLib;   使用系统;   使用System.Collections.Generic;   使用System.Diagnostics;   使用先;   使用来;   使用System.ServiceProcess;   使用System.Threading;      名称空间WindowsService1   {   公共部分类Service1: ServiceBase   {   私人int _countFileChangeEvent=0, _countTimerEvent=0;      私人线程ThreadDownLoad;      公共Service1 ()   {   InitializeComponent ();   }//http://blog.csdn.net/hwt0101/article/details/8514291//http://www.cnblogs.com/mywebname/articles/1244745.html//http://www.cnblogs.com/jzywh/archive/2008/07/23/filesystemwatcher.html//http://www.cnblogs.com/hfzsjz/archive/2011/01/07/1929898.html///& lt; summary>///服务启动的操作///& lt;/summary>///& lt;参数name=安问弊4? lt;/param>   保护覆盖void> & lt;/param>///& lt;参数name=" e "祝辞& lt;/param>   公共空间BeginDowLoad(对象源,System.Timers。ElapsedEventArgs e)   {   int intMinute=e.SignalTime.Minute;   int intSecond=e.SignalTime.Second;   int intHours=e.SignalTime.Hour;//设置每天的07:30时开始执行程序   WriteInLog (intHours + " + intMinute + " + intSecond +”进行时间触发”,假);   如果(intHours==7)///定时设置,判断分时秒,,intMinute==10   {   试一试   {   System.Timers。计时器tt=(与system . timers . Timer类)来源;   tt。启用=false;   DownLoadTvListInfo ();   tt。启用=true;   }   捕获(异常犯错)   {   WriteInLog(犯错。消息,假);   }   }   }      公共List

c#开发windows服务实现自动从FTP服务器下载文件