Для того, чтобы метод выполнялся каждый час, вам нужно назначить таймеру интервал в один час.Timer.Interval ожидает значение в миллисекундах, поэтому:
// 1000 ms per second, 60 seconds per minute, and 60 minutes per hour
_timer.Interval = 1000 * 60 * 60;
Это заставит таймер "тикать" каждый час.Внутри функции Timer_Tick вы должны просто проверить даты файлов, которые находятся в пределах последнего часа:
var creationtime = File.GetCreationTime(file);
var diff = DateTime.Now.Subtract(creationtime);
if (diff.TotalHours <= 1)
{
// File was created within the last hour
}
Однако я верю, что вы действительно пытаетесь найти решение, в котором вы просто создаете резервную копию, если ее нетбыл создан в течение 24 часов.Для этого вы должны использовать следующее:
1) Создать новый метод с именем BackupIfNeeded ()
private void BackupIfNecessary()
{
var name = "localhost";
const string path = @"C:\Creation\Name\backupdb\";
var listfiles = Directory.GetFiles(@"C:\Creation\Name\backupdb\", "backup-*.zip").ToList();
var files = listfiles.Select(Path.GetFileName).ToList();
DateTime lastBackup = DateTime.MinValue;
foreach (var file in files)
{
var creationtime = File.GetCreationTime(file);
// Check if the creation date for this file is the "latest"
if (creationtime > lastBackup)
{
// Store as the "latest" time
lastBackup = creationtime;
}
}
var diff = DateTime.Now.Subtract(lastBackup);
if (diff.TotalHours >= 24)
{
// The last backup file was created over 24 hours ago; You should create the file
}
}
2) Когда ваша форма загружается, выполните функцию резервного копирования в первый раз, выполниввызов BackupIfNe Необходимый в Form_Load (чтобы вы не ждали 24 часа для первого запуска)
3) Установите интервал таймера на 24 часа в Form_Load:
// 1000 ms per second, 60 seconds per minute, and 60 minutes per hour, and 24 hours per day
_timer.Interval = 1000 * 60 * 60 * 24;
4) ВнутриTimer_Tick просто вызывает BackupIfNeeded (), который проверит, была ли резервная копия создана за последние 24 часа, если нет, то создаст одну