_findfirst, _findfirst32, _findfirst32i64, _findfirst64, _findfirst64i32, _findfirsti64, _wfindfirst, _wfindfirst32, _wfindfirst32i64, _wfindfirst64, _wfindfirst64i32, _wfindfirsti64

filespec 引数で指定されたファイルと一致するファイル名の最初のインスタンスに関する情報を提供します。

構文

intptr_t _findfirst(
   const char *filespec,
   struct _finddata_t *fileinfo
);
intptr_t _findfirst32(
   const char *filespec,
   struct _finddata32_t *fileinfo
);
intptr_t _findfirst64(
   const char *filespec,
   struct _finddata64_t *fileinfo
);
intptr_t _findfirsti64(
   const char *filespec,
   struct _finddatai64_t *fileinfo
);
intptr_t _findfirst32i64(
   const char *filespec,
   struct _finddata32i64_t *fileinfo
);
intptr_t _findfirst64i32(
   const char *filespec,
   struct _finddata64i32_t *fileinfo
);
intptr_t _wfindfirst(
   const wchar_t *filespec,
   struct _wfinddata_t *fileinfo
);
intptr_t _wfindfirst32(
   const wchar_t *filespec,
   struct _wfinddata32_t *fileinfo
);
intptr_t _wfindfirst64(
   const wchar_t *filespec,
   struct _wfinddata64_t *fileinfo
);
intptr_t _wfindfirsti64(
   const wchar_t *filespec,
   struct _wfinddatai64_t *fileinfo
);
intptr_t _wfindfirst32i64(
   const wchar_t *filespec,
   struct _wfinddata32i64_t *fileinfo
);
intptr_t _wfindfirst64i32(
   const wchar_t *filespec,
   struct _wfinddata64i32_t *fileinfo
);

パラメーター

filespec
ターゲット ファイルの指定 (ワイルドカード文字を含めることができます)。

fileinfo
ファイル情報バッファー。

戻り値

成功した場合、_findfirst では、filespec の指定に一致するファイルまたはファイルのグループを識別する一意の検索ハンドルを返します。このハンドルは、_findnext または_findclose の以降の呼び出しに使用できます。 それ以外の場合、_findfirst では -1 を返し、errno を次の値のいずれかに設定します。

errno の値 状態
EINVAL 無効なパラメーター: filespec または fileinfoNULL でした。 または、オペレーティング システムが予期しないエラーを返しました。
ENOENT 一致できなかったファイル指定。
ENOMEM 不十分なメモリ。
EINVAL 無効なファイル名の指定か、指定したファイル名が MAX_PATH を超えています。

これらのリターン コードとその他のリターン コードについては、「errno_doserrno_sys_errlist_sys_nerr」を参照してください。

無効なパラメーターが渡された場合、「パラメーターの検証」で説明されているように、これらの関数は無効なパラメーター ハンドラーを呼び出します。

解説

呼び出し_findcloseが成功した場合は、or _findnext 関数 (または任意の_findfirstバリアント) で終了した後に呼び出す_findfirst必要があります。 _findclose は、アプリケーションでこれらの関数によって使用されるリソースを解放します。 無効なハンドルを呼び出すと_findclose、戻り-1値が返され、次に設定されますerrnoEINVAL

プレフィックスを持つ w これらの関数のバリエーションはワイド文字バージョンです。それ以外の場合は、対応する 1 バイト関数と同じです。

これらの関数のバリエーションは、32 ビットや 64 ビットの時刻型と、32 ビットや 64 ビットのファイル サイズをサポートします。 最初の数字のサフィックス (32 または 64) は、時刻型のサイズを示します。2 番目のサフィックスは i32 または i64で、ファイル サイズが 32 ビットの整数として表されるか、それとも 64 ビットの整数として表されるかを示します。 32 ビットと 64 ビットの時刻型とファイル サイズをサポートするバージョンについては、次の表を参照してください。 i32時刻型のサイズと同じ場合、サフィックスまたはi64サフィックスは省略されるため_findfirst64、64 ビットのファイル長もサポートされ_findfirst32、32 ビットのファイル長のみがサポートされます。

これらの関数は、fileinfo パラメーターの多様な形式の _finddata_t 構造体を使用します。 構造の詳細については、「ファイル名検索機能」を参照してください

64 ビットの時刻型を使用するバリエーションでは、3000 年 12 月 31 日 23:59:59 (UTC) までのファイルの作成日を表現できます。 32 ビット時刻型を使用するものは、UTC の 2038 年 1 月 18 日 23:59:59 までの日付のみを表します。 これらの関数の日付範囲の下限は、いずれも 1970 年 1 月 1 日の午前 0 時です。

時間のサイズを明示的に指定するバージョンを使う理由が特にない場合は、_findfirst または _wfindfirst を使用します。また、3 GB を超えるファイル サイズをサポートする必要がある場合は、_findfirsti64 または _wfindfirsti64 を使用します。 これらの関数はすべて 64 ビットの時刻型です。 以前のバージョンでは、これらの関数は 32 ビットの時刻型を使用していました。 この変更がアプリケーションの破壊的変更である場合は、古い動作に戻すよう定義 _USE_32BIT_TIME_T できます。 _USE_32BIT_TIME_T を定義する場合、_findfirst_finfirsti64、およびそれに対応する Unicode バージョンは 32 ビット時刻を使用します。

既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT のグローバル状態」を参照してください

_findfirst の時刻型とファイル長型のバリエーション

関数 _USE_32BIT_TIME_T は定義済み? 時刻型 ファイル長型
_findfirst, _wfindfirst 未定義 64 ビット 32 ビット
_findfirst, _wfindfirst 定義済み 32 ビット 32 ビット
_findfirst32, _wfindfirst32 マクロ定義の影響を受けない 32 ビット 32 ビット
_findfirst64, _wfindfirst64 マクロ定義の影響を受けない 64 ビット 64 ビット
_findfirsti64, _wfindfirsti64 未定義 64 ビット 64 ビット
_findfirsti64, _wfindfirsti64 定義済み 32 ビット 64 ビット
_findfirst32i64, _wfindfirst32i64 マクロ定義の影響を受けない 32 ビット 64 ビット
_findfirst64i32, _wfindfirst64i32 マクロ定義の影響を受けない 64 ビット 32 ビット

汎用テキスト ルーチンのマップ

Tchar.h ルーチン _UNICODE_MBCS が定義されていない _MBCS が定義されている _UNICODE が定義されている
_tfindfirst _findfirst _findfirst _wfindfirst
_tfindfirst32 _findfirst32 _findfirst32 _wfindfirst32
_tfindfirst64 _findfirst64 _findfirst64 _wfindfirst64
_tfindfirsti64 _findfirsti64 _findfirsti64 _wfindfirsti64
_tfindfirst32i64 _findfirst32i64 _findfirst32i64 _wfindfirst32i64
_tfindfirst64i32 _findfirst64i32 _findfirst64i32 _wfindfirst64i32

必要条件

機能 必須ヘッダー
_findfirst <io.h>
_findfirst32 <io.h>
_findfirst64 <io.h>
_findfirsti64 <io.h>
_findfirst32i64 <io.h>
_findfirst64i32 <io.h>
_wfindfirst <io.h> または <wchar.h>
_wfindfirst32 <io.h> または <wchar.h>
_wfindfirst64 <io.h> または <wchar.h>
_wfindfirsti64 <io.h> または <wchar.h>
_wfindfirst32i64 <io.h> または <wchar.h>
_wfindfirst64i32 <io.h> または <wchar.h>

互換性の詳細については、「 Compatibility」を参照してください。

関連項目

システム呼び出し
ファイル名検索機能