【实例简介】
【实例截图】
【核心代码】
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using BackupFileConfig;
using System.IO;
namespace BackupFileService
{
public partial class BakService : ServiceBase
{
private System.Timers.Timer _timer;
public BakService()
{
_timer = new System.Timers.Timer(60000);
_timer.Enabled = false;
InitializeComponent();
_timer.Elapsed = new System.Timers.ElapsedEventHandler(_timer_Elapsed);
}
void _timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
if (e.SignalTime.Hour == ConfigLoader.Instance.ParameterConfig.ExcuteTime.Hour && e.SignalTime.Minute == ConfigLoader.Instance.ParameterConfig.ExcuteTime.Minute)
{
if (Connect.connect(ConfigLoader.Instance.ParameterConfig.FileServerIp.ToString(), ConfigLoader.Instance.ParameterConfig.UserName.ToString(), ConfigLoader.Instance.ParameterConfig.Pwd.ToString()))
{
//备份文件
BackupFile(ConfigLoader.Instance.ParameterConfig.FileSource, ConfigLoader.Instance.ParameterConfig.FileBackupPath);
//执行bat导出数据库
string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "backupDb.bat");
ExcuteProcess.ExecuteCommand(path, "", ConfigLoader.Instance.ParameterConfig.DbUserName, ConfigLoader.Instance.ParameterConfig.DbPwd, ConfigLoader.Instance.ParameterConfig.DbServerName, ConfigLoader.Instance.ParameterConfig.DbBackupPath);
}
else
{
//没有共享的情况
}
}
}
protected override void OnStart(string[] args)
{
_timer.Start();
}
protected override void OnStop()
{
_timer.Stop();
}
///
/// 备份文件
///
/// 文件源路径
/// 文件备份路径
private void BackupFile(string source, string backupPath)
{
//判断源路径是否存在
if (!Directory.Exists(source))
{
return;
}
//判断目标路径是否存在
if (!Directory.Exists(backupPath))
{
Directory.CreateDirectory(backupPath);
}
//进行copy操作
CopyDirectoryHelper _Info = new CopyDirectoryHelper(source, backupPath);
_Info.StarCopy();
}
}
}