FileNameで指定された検索文字列に一致するパス名を持つファイルまたはディレクトリの検索を開始する。ワイルドカードの指定も可能である。
検索結果の情報はFindDataに格納される。また、返されたハンドルをFindNextFileに渡すことにより、検索を継続することができる。
NTでは、"\\?\"によるMAX_PATH以上の長さのファイル名の指定が可能である。
FindFirstFile関数は、短い形式のファイル名と長い形式のファイル名の両方のファイル名をFileNameと一致するかどうか調べる。一つのファイルの名前が両方の形式で一致する場合でも、検索結果として得られるのは一つである。
FindFirstFileやFindNextFileでのファイル検索を終了する場合、FindCloseFileを実行する。
ロックのかかっているファイルのサイズ取得より。 <code> // FindFirstFile() でファイルサイズ取得サンプル // (c) 2000,tokai@fides.dti.ne.jp
int main(int argc,char* argv[]){
FILE *f;
char szFile[] = "test.txt";
HANDLE hFind;
WIN32_FIND_DATA findData;
// 試しにファイルにロックをかけてみる
if((f=fopen(szFile,"r")) != NULL){
// ファイルサイズ取得
if((hFind = FindFirstFile(szFile,&findData)) != INVALID_HANDLE_VALUE){
fprintf(stdout,"%d byte\n",
findData.nFileSizeHigh*MAXDWORD+findData.nFileSizeLow);
FindClose(hFind);
}
fclose(f);
}
else fprintf(stderr,"%s が見つかりません\n",szFile);
return 0;
} </code>