毎日バックアップスケジュールを実行しています。バックアップファイルが24時間以内に作成されない場合は、新しいバックアップファイルを作成したい(backupdatabase()
関数を実行する)。タイマーがC#を使用してファイルを作成していません
さらに、タイマーを使用しているので、1時間ごとにファイルが作成されたかどうかがチェックされます。そして24時間後に新しいファイルを作成します(backupdatabase()
関数を実行します)。
ファイルチェックはFile.GetcreationTime
を使用して行われます。ファイルが作成されるかどうか。私はこのように行っていることについては
...
public partial class BackupForm : Form
{
private static System.Timers.Timer _timer;
private Int32 _hours = 0;
private const Int32 RUN_AT = 10;
private void BackupForm_Load(object sender, EventArgs e)
{
var today = DateTime.Now;
_hours = (24 - (DateTime.Now.Hour + 1)) + RUN_AT;
_timer = new Timer { Interval = _hours * 60 * 60 * 1000 };
_timer.Elapsed += new ElapsedEventHandler(Tick);
_timer.Start();
}
void Tick(object sender, ElapsedEventArgs e)
{
_timer.Stop();
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();
var dt = DateTime.Now;
foreach (var file in files)
{
var creationtime = File.GetCreationTime(file);
var diff = DateTime.Now.Subtract(creationtime);
if (diff.Hours > 24 && diff.Days < 2 && creationtime.Month == dt.Month && creationtime.Year == dt.Year && name == "localhost" && _hours == 24)
{
backupDatabase();
}
else if (_hours != 24)
{
_hours = 24;
_timer.Interval = _hours * 60 * 60 * 1000;
}
}
_timer.Start();
}
}
しかし、それは動作しません、それはファイルの作成時間をチェックしないとさえ、それは24時間後にファイルを作成できません。
ファイルを作成する方法は、1時間ごとと24時間後にタイマーとともに作成時間を確認する方法ですか?
助けを借りると非常に役に立ちます。
はこの質問では不明であるその後、plsはここにコメントを残して... – rockyashkumar
はい、それはこの機能に入るしない「無効ティック(オブジェクト送信者、ElapsedEventArgs E)」 – rockyashkumar
う:私はあなたがいることを変更することを示唆していますいずれかのplsはこれを助ける... – rockyashkumar