tsucchi’s diary(元はてなダイアリー)

はてなダイアリー(d.hatena.ne.jp/tsucchi1022)から移行したものです

C#で、ディレクトリが変更されたかどうかチェックする

うーん、ちょっとタイトル違うかな...。正確には、「対象のディレクトリが、変更されてから、引数で与えられた秒数よりも時間がたっているかどうかをチェックする」です。

「あるアプリがローカルフォルダにコピーしたディレクトリを、リモートのフォルダにバックアップするツール」みたいなのを作っていて、必要になりました。

public class ModificationChecker
{
    private DirectoryInfo targetDir;
    public ModificationChecker(DirectoryInfo targetDir)
    {
        this.targetDir = targetDir;
    }
    public bool IsModifiedAfter(int second)
    {
        return (DateTime.Now - targetDir.LastWriteTime) > new TimeSpan(0, 0, second);
    }
}

多分これでいいっぽい。DateTime 型を引くと、TimeSpan 型になるみたいで、TimeSpan 型だと時間の前後を比較できるのね。そういえば、なんとなくクラスを書いちゃったけど、これだったら一個の関数でもいいかなぁ。