_findnext, _wfindnext
Находят следующее имя, если такое имеется, которое соответствует аргументу filespec в предыдущем вызове _findfirst, а затем изменяют содержимое структуры 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.
Если передан недопустимый параметр, эти функции вызывают обработчик недопустимого параметра, как описано в разделе Проверка параметров.
Заметки
Необходимо вызвать _findclose по окончанию использования функции _findfirst или _findnext (или других вариантов). Это освобождает ресурсы, используемые этими функциями в приложении.
Варианты этих функций с префиксом w - версии для расширенных символов; в остальном они совпадают с соответствующими однобайтовым функциям.
Изменения этих функций поддерживают 32 или 64 разрядные типы времени и 32 или 64 разрядные размеры файлов. Первый числовой суффикс (32 или 64) показывает размер используемого типа времени; второй суффикс i32 или i64 показывает, представлен ли размер файла как 32 разрядное или 64 разрядное целое число. Сведения о том, какие версии поддерживают 32 и 64 разрядные типы времени и размеры файлов, см. в следующей таблице. Варианты, использующие 64-разрядный тип времени, допускают значение даты создания файла до 23:59:59 31 декабря 3000, время в формате UTC; в то время как варианты, использующие 32-разрядный типы, могут представлять дату только до 19:14:07 18 января 2038, время в формате UTC. Полночь 1-ого января 1970 года - нижняя граница диапазона дат для всех этих функций.
Если нет какой-либо определенной причины использовать версии, определяющие время явно с помощью _findnext или _wfindnext или, если необходима поддержка размеров файлов, которые больше 3 ГБ, следует использовать _findnexti64 или _wfindnexti64. Все эти функции используют 64-разрядный тип времени. В предыдущих версиях эти функции использовали 32-разрядный тип времени. Если это - критическое изменение для приложения, укажите _USE_32BIT_TIME_T для получения старого поведения. Если _USE_32BIT_TIME_T указано, _findnext, _finnexti64 и соответствующие версии Юникода используют 32-разрядное время.
Вариации типов времени и типов длин файлов в _findnext
Функции |
Определен ли _USE_32BIT_TIME_T? |
Тип Time. |
Тип File length |
---|---|---|---|
_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.
Эквивалент в .NET Framework
Неприменимо. Для вызова стандартной функции C используйте PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.