久しぶりのプログラミングネタです。今回は、プログラムからファイルの更新日時を取得して比較する、ということをやってみました。
なぜ、こういうことが必要なのかといいますと、こういう背景があったからなのです(かなり回りくどいです)。
私はMacBook Proを使っていて、日常のバックアップはTime Capsuleを使っています。Macファイルのバックアップは、これで十分ですね。
これに加えて、Parallels Desktopにて、Windows 7を使っています。Windows 7側のファイルのバックアップは、CopyToというツールを使って手動でやっていました。
Windows 7のバックアップも、仮想ハードディスクイメージを作っていればTime Capsuleでバックアップできるのですが、私はBOOTCAMPパーティションをそのまま使っていますからね…。
Windows 7で使っているのはジャストシステムのメールソフトShurikenがメインなのですが、このソフトにはバックアップ機能があります。これでメールデータを別フォルダにデイリーとかで自動でバックアップできるのですが、このバックアップ先をMac側にすれば、Time Capsuleが勝手にバックアップできるのではないかと思いつきました。
さっそくやってみたのですよ。Parallels Desktopでは、Mac側のホームディレクトリが仮想ドライブとして見えますから、そこをバックアップ先に指定すればOKのはずです。
しかし結果は、「毎回毎回全ファイルがバックアップされる」でした。本来の動作は、変更されたファイルのみバックアップされる、なのですが、毎回すべてバックアップされるので、6GBほどもある私のメール環境ではバックアップ時間が馬鹿になりません。
それにしても、なぜ全ファイルが毎回毎回コピーされてしまうのかと疑問に思いました。こういう処理の定石は、2つのファイルの更新日時を比較して、変わっていればコピーを行う、というものです。こうして、不必要なコピーをしないようにしているのです。
変わっていないはずのファイルがコピーされてしまうということは、更新されていると認識されてしまう何かの問題があるはずです。暇なので、このへんを探ってみようかと思いつきました。
で、次回からは2つのプログラミング言語で実際に調べてみた例を報告したいと思います。それにしても、どうでもよいようなプログラミングですねぇ…。