Функция FtpFindFirstFileA (wininet.h)
Выполняет поиск в указанном каталоге заданного сеанса FTP. Записи файлов и каталогов возвращаются приложению в структуре WIN32_FIND_DATA .
Синтаксис
HINTERNET FtpFindFirstFileA(
[in] HINTERNET hConnect,
[in] LPCSTR lpszSearchFile,
[out] LPWIN32_FIND_DATAA lpFindFileData,
[in] DWORD dwFlags,
[in] DWORD_PTR dwContext
);
Параметры
[in] hConnect
Дескриптор сеанса FTP, возвращенного из InternetConnect.
[in] lpszSearchFile
Указатель на строку, завершающуюся значением NULL, которая указывает допустимый путь к каталогу или имя файла для файловой системы FTP-сервера. Строка может содержать подстановочные знаки, но пустые пробелы не допускаются. Если значение lpszSearchFile равно NULL или является пустой строкой, функция находит первый файл в текущем каталоге на сервере.
[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 . Однако обратите внимание, что в сеансе FTP одновременно может возникать только один ftpFindFirstFile . Таким образом, перечисления сопоставляются с дескриптором сеанса FTP. Это связано с тем, что протокол FTP допускает перечисление только одного каталога в сеансе.
После вызова FtpFindFirstFile и до вызова InternetCloseHandle приложение не сможет снова вызвать FtpFindFirstFile для заданного дескриптора сеанса FTP. Если для этого дескриптора выполняется вызов FtpFindFirstFile , функция завершается сбоем с ERROR_FTP_TRANSFER_IN_PROGRESS. После завершения работы вызывающего приложения с помощью дескриптора HINTERNET , возвращаемого ftpFindFirstFile, его необходимо закрыть с помощью функции InternetCloseHandle .
После начала перечисления каталога с помощью FtpFindFirstFile можно использовать функцию InternetFindNextFile для продолжения перечисления.
Так как протокол FTP не предоставляет стандартных средств перечисления, некоторые общие сведения о файлах, такие как дата и время создания файла, не всегда доступны или верны. В этом случае FtpFindFirstFile и InternetFindNextFile заполняют недоступные сведения лучшим предположением на основе доступных сведений. Например, даты создания и последнего доступа часто совпадают с датой изменения файла.
Приложение не может вызывать FtpFindFirstFile между вызовами FtpOpenFile и InternetCloseHandle.
Как и все другие аспекты API WinINet, эту функцию нельзя безопасно вызывать из DllMain или конструкторов и деструкторов глобальных объектов.
Примечание
Заголовок wininet.h определяет FtpFindFirstFile в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | wininet.h |
Библиотека | Wininet.lib |
DLL | Wininet.dll |