はじめに
ファイルダウンロード処理で、更新されていないファイルを毎回ダウンロードするのは意味がない処理なので、
今回は、サーバ上にあるファイル更新日が新しい場合のみファイルをダウンロードする処理をメモします。
ファイルダウンロード処理は下記を参考にしてください
更新に日時を取得する
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}");
}
毎日ファイルを更新しない場合、ファイルの更新日時を元にファイルチェックを行い、ダウンロードするようにしましょう。