ディレクトリリスト取得プログラム:dirlist.exe


はじめに

 仕事柄、大量のファイルで構成されたプロジェクトを扱うことが多いのですが、パッチやサービスパックを当てた時に、いきなりビルドが失敗するようになることがよく有ります。以前の環境をバックアップしておいて、前回からの差分を見て、パッチの修正内容を調べ、プロジェクトへの影響範囲を調べたりするのですが、マイクロソフト謹製のツール類はファイル数も多く、以前の内容をそのままバックアップするのも大変です。
 以前の状態との差分を調べるだけなら、ディレクトリのファイルリストをサブディレクトリも含めて再帰的に取得しておき、ファイル名、ファイルサイズ、タイムスタンプをDIFFツールで比較するだけでも十分です。しかし、DIRコマンドで /S オプションを使ってもファイルのフルパス名が表示できなかったり、 /B オプションを使うとファイルサイズやタイムスタンプが表示できないなど、あまり使い勝手が良くありません。そこで、コマンドラインのDIRコマンドに似たユーティリティを作成しました。DIRLIST.EXE というプログラムです。

DIRLIST.EXE の機能

 DIRLIST.EXE は、DIR コマンドに似た、ファイルリストを出力するコマンドラインプログラムです。DIR コマンドとの違いは、 といったところです。
MD5とは、ハッシュ生成アルゴリズムの名前で、このアルゴリズムは任意の長さのデータに128ビットのハッシュ値を生成します。データが1バイトでも違っていたらMD5ハッシュ値は全く異なる値になるので、ファイルが全く同一か否かを判定するのに利用できます。

使用方法

 PATH の通ったディレクトリに、DIRLIST.EXE をコピーしてください。Borland C++ をインストールしている人は、C:\borland\bcc55\bin などに入れておくと良いでしょう。
 書式は、以下のとおり。
DIRLIST [/option] PATH名
option は以下のものが指定できます。
PATH名は、ディレクトリ名か、ディレクトリ名\ファイル名 を指定します。ディレクトリ名は絶対パス、相対パスのいづれもOKです。ファイル名を指定する場合は、ワイルドカードを含むことが出来ます。ディレクトリ名を省略すると、カレントディレクトリからの検索になります。

実行例

 /tsamr で全てのオプションを付けると、タイムスタンプ、ファイルサイズ、属性、MD5、フルパス名 の順に表示されます。あとはリダイレクトして保存するなり、sort.exe に食わせるなり、好きにしてください。

ダウンロード

たいしたプログラムでは有りませんが、何かの役に立つかもしれませんので、ソースごと公開します。自由に使ってください。なお、MD5アルゴリズムは、RSA Data Security, Inc.が公開しているものをそのまま持ってきました。
ソースコード&実行ファイル
top