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,但不能同時使用兩者。

[in] dwFlags

發生傳輸的條件。 應用程式應該選取一個傳輸類型,以及任何指出如何控制檔案快取的旗標。

傳輸類型可以是下列其中一個值。

意義
FTP_TRANSFER_TYPE_ASCII
使用 FTP 的 ASCII (類型 A) 傳輸方法來傳輸檔案。 控件和格式化資訊會轉換成本機對等專案。
FTP_TRANSFER_TYPE_BINARY
使用 FTP 的 Image (Type 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 Services (WinHTTP)
 

注意

wininet.h 標頭會將 FtpOpenFile 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 wininet.h
程式庫 Wininet.lib
Dll Wininet.dll

另請參閱

FTP 會話

WinINet 函式