_findnext、_wfindnext
如果有,则查找下一名称,对比之前调用_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 前缀的这些函数变量是宽字符版本;否则,它们与对应的单字节函数相同。
这些函数的变量支持 32 位或 64 位时间类型和 32 位或 64 位文件大小。 第一个数字后缀 (32 或 64) 指示使用的时间类型的大小;第二个后缀要么是 i32 要么是 i64,指示文件大小是否表示为 32 位或 64 位整数。 有关哪些版本支持 32 位和 64 位时间类型和文件大小的详细信息,请参阅下表。 使用 64 位时间类型的变量允许文件创建日期表示为 23:59:59, December 31, 3000, UTC;因而使用 32 位时间类型只通过 19:14:07 January 18, 2038, UTC 表示日期。 1970 年 1 月 1 日 00:00:00,是所有这些函数的下限的日期范围。
除非出于特定原因需要使用显式指定时间范围的版本,使用 _findnext 或 _wfindnext,或者,如果需要支持大于3 GB的文件大小,请使用 _findnexti64 或 _wfindnexti64。 所有这些函数使用 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> or <wchar.h> |
_wfindnext32 |
<io.h> or <wchar.h> |
_wfindnext64 |
<io.h> or <wchar.h> |
_wfindnexti64 |
<io.h> or <wchar.h> |
_wfindnext32i64 |
<io.h> or <wchar.h> |
_wfindnext64i32 |
<io.h> or <wchar.h> |
有关更多兼容性信息,请参见“简介”中的兼容性。
库
C 运行时库的所有版本。
.NET Framework 等效项
不适用。若要调用标准 C 函数,请使用 PInvoke。有关更多信息,请参见平台调用示例。