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


Функция FtpFindFirstFileW (wininet.h)

Выполняет поиск указанного каталога заданного сеанса FTP. Записи файлов и каталогов возвращаются приложению в структуре WIN32_FIND_DATA.

Синтаксис

HINTERNET FtpFindFirstFileW(
  [in]  HINTERNET          hConnect,
  [in]  LPCWSTR            lpszSearchFile,
  [out] LPWIN32_FIND_DATAW lpFindFileData,
  [in]  DWORD              dwFlags,
  [in]  DWORD_PTR          dwContext
);

Параметры

[in] hConnect

Обработка сеанса FTP, возвращенного из InternetConnect.

[in] lpszSearchFile

Указатель на строку null-terminated, указывающую допустимый путь к каталогу или имя файла файловой системы FTP-сервера. Строка может содержать подстановочные знаки, но пустые пробелы не допускаются. Если значение lpszSearchFileNULL или если это пустая строка, функция находит первый файл в текущем каталоге на сервере.

[out] lpFindFileData

Указатель на структуру WIN32_FIND_DATA, которая получает сведения о найденном файле или каталоге.

[in] dwFlags

Управляет поведением этой функции. Этот параметр может быть сочетанием следующих значений.

INTERNET_FLAG_HYPERLINK

INTERNET_FLAG_NEED_FILE

INTERNET_FLAG_NO_CACHE_WRITE

INTERNET_FLAG_RELOAD

INTERNET_FLAG_RESYNCHRONIZE

[in] dwContext

Указатель на переменную, указывающую определяемое приложением значение, которое связывает этот поиск с любыми данными приложения. Этот параметр используется только в том случае, если приложение уже вызвало InternetSetStatusCallback для настройки функции обратного вызова состояния.

Возвращаемое значение

Возвращает допустимый дескриптор запроса, если перечисление каталога было запущено успешно или возвращает NULL в противном случае. Чтобы получить определенное сообщение об ошибке, вызовите GetLastError. Если GetLastError возвращает ERROR_INTERNET_EXTENDED_ERROR, как в случае, если функция не находит соответствующие файлы, вызовите функцию InternetGetLastResponseInfo, чтобы получить расширенный текст ошибки, как описано в обработке ошибок.

Замечания

Для FTPFindFirstFileвремя, возвращаемое в структуре WIN32_FIND_DATA, находятся в локальном часовом поясе, а не в формате UTC.

FtpFindFirstFile похож на функцию FindFirstFile. Обратите внимание, что в течение заданного сеанса FTPFindFirst File может происходить только один FtpFindFirstFile. Поэтому перечисления коррелируются с дескриптором сеанса FTP. Это связано с тем, что протокол FTP разрешает только одно перечисление каталогов на сеанс.

После вызова FtpFindFirstFile и до вызова InternetCloseHandleприложение не может вызывать FtpFindFirstFile на заданном дескрипторе сеанса FTP. Если вызов выполняется для FTPFindFirstFile в этом дескрипторе, функция завершается ошибкой с ERROR_FTP_TRANSFER_IN_PROGRESS. После завершения вызова приложения с помощью дескриптора HINTERNET, возвращаемого FtpFindFirstFile, его необходимо закрыть с помощью функции InternetCloseHandle.

После начала перечисления каталога с FtpFindFirstFileфункция InternetFindNextFile InternetFindNextFile можно использовать для продолжения перечисления.

Так как протокол FTP не предоставляет стандартных средств перечисления, некоторые общие сведения о файлах, таких как дата и время создания файла, не всегда доступны или верны. В этом случае FtpFindFirstFile и InternetFindNextFile заполнить недоступные сведения с лучшим предположением на основе доступных сведений. Например, даты создания и последнего доступа часто совпадают с датой изменения файла.

Приложение не может вызывать FTPFindFirstFile между вызовами FtpOpenFile и InternetCloseHandle.

Как и все остальные аспекты API WinINet, эта функция не может быть безопасно вызвана из dllMain или конструкторов и деструкторов глобальных объектов.

Примечание WinINet не поддерживает реализации сервера. Кроме того, его не следует использовать из службы. Для реализации или служб сервера microsoft Windows HTTP Services (WinHTTP).
 

Заметка

Заголовок wininet.h определяет FtpFindFirstFile как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка wininet.h
библиотеки Wininet.lib
DLL Wininet.dll

См. также

сеансов FTP

функций WinINet