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_READGENERIC_WRITE,但不能同时 GENERIC_WRITE

[in] dwFlags

发生传输的条件。 应用程序应选择一种传输类型以及指示如何控制文件的缓存的任何标志。

传输类型可以是以下值之一。

价值 意义
FTP_TRANSFER_TYPE_ASCII
使用 FTP 的 ASCII(类型 A)传输方法传输文件。 控件和格式设置信息将转换为本地等效项。
FTP_TRANSFER_TYPE_BINARY
使用 FTP 的图像(类型 I)传输方法传输文件。 文件与不存在的完全一样传输,没有任何更改。 这是默认传输方法。
FTP_TRANSFER_TYPE_UNKNOWN
默认为FTP_TRANSFER_TYPE_BINARY。
INTERNET_FLAG_TRANSFER_ASCII
将文件传输为 ASCII。
INTERNET_FLAG_TRANSFER_BINARY
将文件传输为二进制文件。
 

以下值用于控制文件的缓存。 应用程序可以使用其中一个或多个值。

价值 意义
INTERNET_FLAG_HYPERLINK
如果不存在 Expires 时间和从服务器返回的 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。 调用应用程序使用 FtpOpenFile返回的 HINTERNET 句柄后,必须使用 InternetCloseHandle 函数将其关闭。

单个 FTP 会话中只能打开一个文件。 因此,不会返回任何文件句柄,应用程序只需在必要时使用 FTP 会话句柄。

lpszFileName 参数可以是相对于当前目录的部分或完全限定的文件名。

与 WinINet API 的其他所有方面一样,不能从 DllMain 或全局对象的构造函数和析构函数中安全地调用此函数。

注意 WinINet 不支持服务器实现。 此外,不应从服务使用它。 对于服务器实现或服务,请使用 Microsoft Windows HTTP 服务(WinHTTP)
 

注意

wininet.h 标头将 FtpOpenFile 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 wininet.h
Wininet.lib
DLL Wininet.dll

另请参阅

FTP 会话

WinINet 函数