共用方式為


ftpGetFileA 函式 (wininet.h)

從 FTP 伺服器擷取檔案,並將它儲存在指定的檔名之下,並在進程中建立新的本機檔案。

語法

BOOL FtpGetFileA(
  [in] HINTERNET hConnect,
  [in] LPCSTR    lpszRemoteFile,
  [in] LPCSTR    lpszNewFile,
  [in] BOOL      fFailIfExists,
  [in] DWORD     dwFlagsAndAttributes,
  [in] DWORD     dwFlags,
  [in] DWORD_PTR dwContext
);

參數

[in] hConnect

FTP 會話的句柄。

[in] lpszRemoteFile

Null 終止字串的指標,其中包含要擷取的檔名。

[in] lpszNewFile

Null 終止字串的指標,其中包含要建立於本機系統上的檔名。

[in] fFailIfExists

指出如果指定的名稱的本機檔案已經存在,函式是否應該繼續進行。 如果 fFailIfExistsTRUE 且本機檔案存在, FtpGetFile 會失敗。

[in] dwFlagsAndAttributes

新檔案的檔案屬性。 這個參數可以是 CreateFile 函式所使用之FILE_ATTRIBUTE_* 旗標的任何組合。

[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 來設定狀態回呼函式時,才會使用此功能。

傳回值

如果成功,則傳回 TRUE ,否則傳回 FALSE 。 若要取得特定的錯誤訊息,請呼叫 GetLastError

備註

FtpGetFile 是高階例程,可處理從 FTP 伺服器讀取檔案並將它儲存在本機的所有簿記和額外負荷。 需要只擷取檔案數據或需要對檔案傳輸進行關閉控制的應用程式,應該使用 FtpOpenFileInternetReadFile 函式。

如果 dwFlags 參數指定 FTP_TRANSFER_TYPE_ASCII,則檔案數據的轉譯會將控件和格式化字元轉換為本機對等專案。 默認傳輸是二進位模式,其中檔案會以與儲存在伺服器上的相同格式下載。

lpszRemoteFilelpszNewFile 可以是相對於目前目錄的部分或完整檔名。

就像 WinINet API 所有其他層面一樣,您無法從 DllMain 或全域物件的建構函式和解構函式安全地呼叫此函式。

注意 WinINet 不支援伺服器實作。 此外,不應該從服務使用它。 對於伺服器實作或服務,請使用 Microsoft Windows HTTP Services (WinHTTP)
 

注意

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

規格需求

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

另請參閱

FTP 會話

WinINet 函式