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


_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. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.

См. также

Ссылки

Системные вызовы

Функции _find, _wfind