共用方式為


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 函式