次の方法で共有


_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 を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

参照

参照

システム コール

_find、_wfind 系関数