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


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

Инициирует доступ к удаленному файлу на FTP-сервере для чтения или записи.

Синтаксис

HINTERNET FtpOpenFileA(
  [in] HINTERNET hConnect,
  [in] LPCSTR    lpszFileName,
  [in] DWORD     dwAccess,
  [in] DWORD     dwFlags,
  [in] DWORD_PTR dwContext
);

Параметры

[in] hConnect

Обработка сеанса FTP.

[in] lpszFileName

Указатель на строку, завершающую значение NULL, содержащую имя файла, к которому требуется получить доступ.

[in] dwAccess

Доступ к файлам. Этот параметр может быть GENERIC_READ или GENERIC_WRITE, но не оба.

[in] dwFlags

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

Тип передачи может быть одним из следующих значений.

Ценность Значение
FTP_TRANSFER_TYPE_ASCII
Передает файл с помощью метода передачи ASCII (Type A) FTP. Сведения об управлении и форматировании преобразуются в локальные эквиваленты.
FTP_TRANSFER_TYPE_BINARY
Передает файл с помощью метода передачи образа FTP (type I). Файл передается точно так же, как он существует без изменений. Это метод передачи по умолчанию.
FTP_TRANSFER_TYPE_UNKNOWN
По умолчанию используется FTP_TRANSFER_TYPE_BINARY.
INTERNET_FLAG_TRANSFER_ASCII
Передает файл как ASCII.
INTERNET_FLAG_TRANSFER_BINARY
Передает файл в двоичный файл.
 

Следующие значения используются для управления кэшированием файла. Приложение может использовать одно или несколько этих значений.

Ценность Значение
INTERNET_FLAG_HYPERLINK
Принудивает перезагрузку, если срок действия истекает, и время LastModified не возвращается с сервера при определении необходимости перезагрузки элемента из сети.
INTERNET_FLAG_NEED_FILE
Вызывает создание временного файла, если файл не может быть кэширован.
INTERNET_FLAG_RELOAD
Принудительно загружает запрошенный файл, объект или список каталогов с исходного сервера, а не из кэша.
INTERNET_FLAG_RESYNCHRONIZE
Перезагрузит ресурсы HTTP, если ресурс был изменен с момента последнего скачивания. Все ресурсы FTP перезагрузятся.

Windows XP и Windows Server 2003 R2 и более ранних версий: ресурсы Gopher также перезагрузятся.

[in] dwContext

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

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

Возвращает дескриптор в случае успешного выполнения или значение NULL в противном случае. Чтобы получить определенное сообщение об ошибке, вызовите GetLastError.

Замечания

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

В одном сеансе FTP можно открыть только один файл. Поэтому при необходимости не возвращается дескриптор файла, и приложение просто использует дескриптор сеанса FTP.

Параметр lpszFileName может быть частично или полным именем файла относительно текущего каталога.

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

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

Заметка

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

Требования

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

См. также

сеансов FTP

функций WinINet