トップC-Tips > ディレクトリサーチ

ディレクトリサーチ

指定されたファイル名の検索には _findfirst, _findnext, _findclose関数を使用する。 ファイル情報は、io.h に定義されている _finddata_t 構造体に返される。 この構造体には、次の情報

unsigned attrib;        // ファイル属性。
time_t   time_write;    // 最新ファイル書き込み時刻
_fsize_t size;          // ファイルの長さ (バイト数)
char     name[260];     // ファイルまたはディレクトリの名前
が含まれる。attribには、次の情報
_A_HIDDEN(0x02) // 隠しファイル
_A_NORMAL(0x00) // 通常ファイル
_A_RDONLY(0x01) // 読み取り専用
_A_SUBDIR(0x10) // サブディレクトリ
_A_SYSTEM(0x04) // システム ファイル。
が含まれる。

ディレクトリ下の全ファイルの更新時間の探索

指定されたディレクトリ下の全ファイルの更新時間を調べて、 その中で一番新しい更新時間を返すプログラムを以下に示す。

lastmodified01.c

ファイル情報の一覧表示

指定拡張子のファイルを指定ディレクトリ下で再帰探索し、 パス名、更新日時、行数、サイズを一覧表示するプログラムを下に示す。

linecount01.c

このプログラムでは、ファイルは再帰処理で見つかった順に表示される。 実際には、ファイル名順とか、更新時刻順とか、サイズ順など、何らかの順番で並び替えたいことがある。 また、ソースファイル一覧表をHTMLファイルにして、 リンクをクリックすると、ファイルを開くようにしたいときもあろう。 これらの処理をこのプログラムに含める方法とパイプ処理で次段のプログラムに任せる方法がある。 上のプログラムは後者を想定して、出力を簡単なCSV形式としている。