[C#] サーバ上にあるファイルの更新日時を取得する


はじめに

ファイルダウンロード処理で、更新されていないファイルを毎回ダウンロードするのは意味がない処理なので、
今回は、サーバ上にあるファイル更新日が新しい場合のみファイルをダウンロードする処理をメモします。

ファイルダウンロード処理は下記を参考にしてください

[C#] ファイルをダウンロードしチェックする

更新に日時を取得する


string url = "http://sample.com/sample.txt";
string downloadFilePath = "C:¥work¥sample.txt";
Uri uri = new Uri(url);

try
{
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri);
    req.Proxy = WebRequest.GetSystemWebProxy();
    HttpWebResponse res = (HttpwebResponse)req.GetResponse();

    // 更新日
    DateTime targetDate = res.LastModified;

    if (File.Exist(downloadFilePath) == true)
    {
        // ファイルが存在する場合は日時を比較する
        // ダウンロードファイルはダウンロードした日が更新日となるため
        // 初回は必ず実行するようにする

        DateTime lastWriteTime = File.GetLastWriteTime(downloadFilePath);
        if(lastWriteTime < targetDate) {
            Console.WriteLine("Download");   
        }
        else
        {
            Console.WriteLine("Not download");
            return;
        }
    }

    /* ---------------------
        ファイルダウンロードは省略 
       --------------------- */

}
catch(Exception e)
{
    Console.WriteLine($"{e.Message}");
}

毎日ファイルを更新しない場合、ファイルの更新日時を元にファイルチェックを行い、ダウンロードするようにしましょう。