Поделиться через


_findnext, _findnext32, _findnext32i64_findnext64_findnext64i32_findnexti64_wfindnext_wfindnext32_wfindnext32i64_wfindnext64_wfindnext64i32_wfindnexti64

Найдите следующее имя, если есть, соответствующее 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 значение, указывающее характер сбоя. Возможные коды ошибок приведены в следующей таблице.

Значение errno Condition
EINVAL Недопустимый параметр: fileinfo имеет значение NULL. Или операционная система возвратила непредвиденную ошибку.
ENOENT Больше не удалось найти ни одного соответствующего файла.
ENOMEM Недостаточно памяти или длина имени файла превысила MAX_PATH.

Если недопустимый параметр передается, эти функции вызывают обработчик недопустимых параметров, как описано в разделе "Проверка параметров".

Замечания

После завершения работы необходимо вызвать _findclose функцию _findfirst или _findnext функцию (или любые варианты). _findclose освобождает ресурсы, используемые этими функциями в приложении.

Варианты этих функций с префиксом w являются версиями расширенных символов; в противном случае они идентичны соответствующим однобайтовым функциям.

Варианты этих функций поддерживают 32- или 64-разрядные типы времени и 32- или 64-разрядные размеры файлов. Первый числовой суффикс (32 или 64) указывает размер используемого типа времени; второй суффикс i32 или i64показывает, представлен ли размер файла как 32- или 64-разрядное целое число. Сведения о том, какие версии поддерживают 32- и 64-разрядные типы времени и размеры файлов, см. в следующей таблице. Варианты, использующие 64-разрядный тип времени, допускают значение даты создания файла до 23:59:59 31 декабря 3000 года, время в формате UTC; варианты, использующие 32-разрядные типы, могут представлять дату только до 23:59:59 18 января 2038 года, время в формате UTC. Полночь 1 января 1970 года — нижняя граница диапазона дат для всех этих функций.

Если нет какой-либо определенной причины использовать версии, указывающие размер времени явно, используйте функцию _findnext или _wfindnext или, если необходима поддержка размеров файлов больше 3 ГБ, используйте функцию _findnexti64 или _wfindnexti64. Все эти функции используют 64-разрядный тип времени. В предыдущих версиях эти функции использовали 32-разрядный тип времени. Если это изменение является критическим изменением для приложения, вы можете определить _USE_32BIT_TIME_T , чтобы получить старое поведение. Если определена директива _USE_32BIT_TIME_T, функции _findnext, _findnexti64 и соответствующие версии Юникода используют 32-разрядное время.

По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.

Варианты типов времени и типов длины файлов в функции _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

Требования

Function Обязательный заголовок
_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.

См. также

Системные вызовы
Функции поиска имени файла