_findfirst、_wfindfirst
更新 : 2007 年 11 月
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 を次のいずれかの値に設定します。
EINVAL
無効なパラメータ。filespec または fileinfo が NULL です。または、オペレーティング システムが予期しないエラーを返しました。ENOENT
一致するファイルのないファイル指定ENOMEM
メモリ不足。EINVAL
無効なファイル名の指定、または指定されたファイル名が MAX_PATH を超えています。
リターン コードの詳細については、「_doserrno、errno、_sys_errlist、および _sys_nerr」を参照してください。
無効なパラメータが渡されると、「パラメータの検証」に説明されているように、これらの関数は無効なパラメータ ハンドラを呼び出します。
解説
_findfirst 関数または _findnext 関数 (またはそのバリアント) を使用した後で、_findclose を呼び出す必要があります。これによって、アプリケーションでこれらの関数が使用していたリソースが解放されます。
w プレフィックスが付いている関数はワイド文字のバージョンで、それ以外の点では対応する 1 バイト文字用の関数と同じです。
この関数の一連のバージョンは、32 ビットまたは 64 ビットの時刻型、および 32 ビットまたは 64 ビットのファイル サイズをサポートします。最初の数字サフィックス (32 または 64) は時刻型のサイズを表し、2 番目のサフィックス (i32 または i64) はファイル サイズが 32 ビットまたは 64 ビットのどちらの整数値で表されているかを示します。32 ビットと 64 ビットの時刻型とファイル サイズをサポートするバージョンについては、次の表を参照してください。i32 または i64 が時刻型と同じサイズの場合、サフィックスは省略されるので、_findfirst64 も 64 ビットのファイル長をサポートし、_findfirst32 は 32 ビットのファイル長のみをサポートします。
これらの関数は、fileinfo パラメータに _finddata_t 構造体の各種の形式を使用します。この構造体の詳細については、「_find、_wfind 系関数」を参照してください。
64 ビットの時刻型を使用するバージョンでは、ファイルの作成日を世界協定時刻 (UTC) 3000 年 12 月 31 日 23 時 59 分 59 秒まで表現できます。32 ビットの時刻型を使用するバージョンでは、ファイルの作成日を 2038 年 1 月 18 日 19 時 14 分 07 秒までしか表現できません。これらの関数の日付範囲の下限は、すべて 1970 年 1 月 1 日の午前零時です。
時刻のサイズを明示的に指定するバージョンを使用する特別の理由がない限り、_findfirst または _wfindfirst を使用してください。3 GB を超えるサイズのファイルをサポートする必要がある場合は、_findfirsti64 または _wfindfirsti64 使用してください。Visual C++ 2005 では、すべての関数が 64 ビットの時刻型を使用します。以前のバージョンの関数は 32 ビットの時刻型を使用します。この変更点がアプリケーションの互換性に影響する場合は、_USE_32BIT_TIME_T を定義して以前の動作に戻します。_USE_32BIT_TIME_T を定義すると、_findfirst、_finfirsti64、および対応する Unicode バージョンは 32 ビットの時刻を使用します。
_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> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
.NET Framework の相当するアイテム
System::IO::DirectoryInfo::GetFiles