ファイル比較(1)

はじめに

友人がファイルを比較するプログラムを作っていると聞いたので、便乗してその類のプログラムについて考えてみる。

目的

指定された二つのフォルダにあるファイルを比較し、削除や更新・新規などを検出する。らしい。詳しい話を聞いてないないので、友人のプログラムとは無関係にここではそれを目的とする。
出力を色々変更できるようにしたいとか言ってたから、それは目的に含めよう。

手法

単純に考えると、フォルダ内のファイルを名前順に並べて、同じ名前同士で比較。でいいのかな。

フォルダ

WindowsAPIにそれっぽいのがあった気がする。

ファイル比較

全ビット同一か調べるのは時間かかるから、MD5とか使うのがいいのだろうか?
こういう使い方するものなのか良く知らないが、はてなキーワード見る限り大丈夫そうだ。
http://workarea.homeip.net/
このあたりからMD5.cを引っ張ってこればそのまま使えるのかな。

中身一緒で日付が違うとか、名前が違う場合の扱いはどうすべきだろうか。

サブフォルダ

再帰で処理すれば良さそう。

出力

printf文見たく、%xxで好きな位置に情報を埋め込めるようにする。
ってことはxxに該当する全データを保持する構造体かなんかを抱えてればいいのかな。

実装

続き