_findnext、_wfindnext
更新 : 2007 年 11 月
前の _findfirst の呼び出しの filespec 引数に一致する次の名前を検索し、その結果に基づいて fileinfo 構造体を変更します。
int _findnext(
intptr_t handle,
struct _finddata_t *fileinfo
);
int _findnext32(
intptr_t handle,
struct _finddata32_t *fileinfo
);
int _findnext64(
intptr_t handle,
struct __finddata64_t *fileinfo
);
int _findnexti64(
intptr_t handle,
struct __finddatai64_t *fileinfo
);
int _findnext32i64(
intptr_t handle,
struct _finddata32i64_t *fileinfo
);
int _findnext64i32(
intptr_t handle,
struct _finddata64i32_t *fileinfo
);
int _wfindnext(
intptr_t handle,
struct _wfinddata_t *fileinfo
);
int _wfindnext32(
intptr_t handle,
struct _wfinddata32_t *fileinfo
);
int _wfindnext64(
intptr_t handle,
struct _wfinddata64_t *fileinfo
);
int _wfindnexti64(
intptr_t handle,
struct _wfinddatai64_t *fileinfo
);
int _wfindnext32i64(
intptr_t handle,
struct _wfinddatai64_t *fileinfo
);
int _wfindnext64i32(
intptr_t handle,
struct _wfinddata64i32_t *fileinfo
);
パラメータ
handle
前の _findfirst 呼び出しで返された検索ハンドル。fileinfo
ファイル情報バッファ。
戻り値
成功した場合は 0 を返します。それ以外の場合は –1 を返し、errno を失敗の原因を表す値に設定します。次の表に、可能性のあるエラー コードを示します。
EINVAL
無効なパラメータ。fileinfo が NULL です。または、オペレーティング システムが予期しないエラーを返しました。ENOENT
一致するファイルが見つかりませんでした。ENOMEM
メモリが不足しているか、またはファイル名の長さが MAX_PATH を超えています。
無効なパラメータが渡されると、「パラメータの検証」に説明されているように、これらの関数は無効なパラメータ ハンドラを呼び出します。
解説
_findfirst 関数または _findnext 関数 (またはそのバリアント) を使用した後で、_findclose を呼び出す必要があります。これによって、アプリケーションでこれらの関数が使用していたリソースが解放されます。
w プリフィックスが付いている関数はワイド文字のバージョンで、それ以外の点では対応する 1 バイト文字用の関数と同じです。
この関数の一連のバージョンは、32 ビットまたは 64 ビットの時刻型、および 32 ビットまたは 64 ビットのファイル サイズをサポートします。最初の数字サフィックス (32 または 64) は使用されている時刻型のサイズを表し、2 番目のサフィックス (i32 または i64) はファイル サイズが 32 ビットまたは 64 ビットのどちらの整数値で表されているかを示します。32 ビットと 64 ビットの時刻型とファイル サイズをサポートするバージョンについては、次の表を参照してください。64 ビットの時刻型を使用するバージョンでは、ファイルの作成日を世界協定時刻 (UTC) 3000 年 12 月 31 日 23 時 59 分 59 秒まで表現できます。32 ビットの時刻型を使用するバージョンでは、ファイルの作成日を 2038 年 1 月 18 日 19 時 14 分 07 秒までしか表現できません。これらの関数の日付範囲の下限は、すべて 1970 年 1 月 1 日の午前零時です。
時刻のサイズを明示的に指定するバージョンを使用する特別の理由がない限り、_findnext または _wfindnext を使用してください。3 GB を超えるサイズのファイルをサポートする必要がある場合は、_findnexti64 または _wfindnexti64 使用してください。Visual C++ 2005 では、すべての関数が 64 ビットの時刻型を使用します。以前のバージョンの関数は 32 ビットの時刻型を使用します。この変更点がアプリケーションの互換性に影響する場合は、_USE_32BIT_TIME_T を定義して以前の動作を使用してください。_USE_32BIT_TIME_T を定義すると、_findnext、_finnexti64、および対応する Unicode バージョンは 32 ビットの時刻を使用します。
_findnext の時刻型とファイル長の種類
関数 |
_USE_32BIT_TIME_T の定義 |
時刻型 |
ファイル長の種類 |
---|---|---|---|
_findnext, _wfindnext |
定義なし |
64 ビット |
32 ビット |
_findnext, _wfindnext |
定義あり |
32 ビット |
32 ビット |
_findnext32, _wfindnext32 |
マクロ定義の影響は受けません |
32 ビット |
32 ビット |
_findnext64, _wfindnext64 |
マクロ定義の影響は受けません |
64 ビット |
64 ビット |
_findnexti64, _wfindnexti64 |
定義なし |
64 ビット |
64 ビット |
_findnexti64, _wfindnexti64 |
定義あり |
32 ビット |
64 ビット |
_findnext32i64, _wfindnext32i64 |
マクロ定義の影響は受けません |
32 ビット |
64 ビット |
_findnext64i32, _wfindnext64i32 |
マクロ定義の影響は受けません |
64 ビット |
32 ビット |
汎用テキスト ルーチンのマップ
Tchar.h のルーチン |
_UNICODE および _MBCS が未定義の場合 |
_MBCS が定義されている場合 |
_UNICODE が定義されている場合 |
---|---|---|---|
_tfindnext |
_findnext |
_findnext |
_wfindnext |
_tfindnext32 |
_findnext32 |
_findnext32 |
_wfindnext32 |
_tfindnext64 |
_findnext64 |
_findnext64 |
_wfindnext64 |
_tfindnexti64 |
_findnexti64 |
_findnexti64 |
_wfindnexti64 |
_tfindnext32i64 |
_findnext32i64 |
_findnext32i64 |
_wfindnext32i64 |
_tfindnext64i32 |
_findnext64i32 |
_findnext64i32 |
_wfindnext64i32 |
必要条件
関数 |
必須ヘッダー |
---|---|
_findnext |
<io.h> |
_findnext32 |
<io.h> |
_findnext64 |
<io.h> |
_findnexti64 |
<io.h> |
_findnext32i64 |
<io.h> |
_findnext64i32 |
<io.h> |
_wfindnext |
<io.h> または <wchar.h> |
_wfindnext32 |
<io.h> または <wchar.h> |
_wfindnext64 |
<io.h> または <wchar.h> |
_wfindnexti64 |
<io.h> または <wchar.h> |
_wfindnext32i64 |
<io.h> または <wchar.h> |
_wfindnext64i32 |
<io.h> または <wchar.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
ライブラリ
C ランタイム ライブラリのすべてのバージョン。
.NET Framework の相当するアイテム
適用できません。標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。