findnext、_wfindnext
dir.h:インデックス への移動
ヘッダー
dir.h
カテゴリ
ディレクトリ制御ルーチン
プロトタイプ
int findnext(struct ffblk *ffblk );
int _wfindnext(struct _wffblk *ffblk );
説明
findfirst 検索を続行します。
findnext は、findfirst で指定されたパス名に一致するファイルの続きを取得するために使用します。ffblk は、findfirst を呼び出して設定されたブロックと同じブロックです。このブロックは、検索の続行に必要な情報を含みます。このディレクトリでパス名に一致するファイルが見つからなくなるまで、findnext を呼び出すたびに 1 つのファイル名が返されます。
戻り値
検索パス名と一致するファイルが見つかった場合、findnext は 0 を返します。ファイルが見つからない場合、またはファイル名にエラーがある場合は
-1 を返します。
errno を次の値に設定します。
|
ENOENT |
パスまたはファイル名が見つからない |
_doserrno を次のいずれかの値に設定します。
|
ENMFILE |
No more files(これ以上ファイルはない) |
|
ENOENT |
パスまたはファイル名が見つからない |
移植性
| POSIX | Win32 | ANSI C | ANSI C++ | |
|---|---|---|---|---|
|
findnext |
+ |
|||
|
_wfindnext |
NT のみ |
コード例
#include <stdio.h>
#include <dir.h>
void print_dir(wchar_t* dir_name)
{
/* Open a find stream (_wfinddata_t and a find handle) */
_wffblk find_data;
int done;
done = _wfindfirst(dir_name, &find_data, 0);
/* Scan all files that mach */
while (!done)
{
printf("%ls\n", find_data.ff_name);
done = _wfindnext(&find_data);
}
/* Close the find handle */
_wfindclose(&find_data);
}