一、步驟:
1) InternetOpen初始化一個Internet控制代碼。此控制代碼用於建立一個FTP session。
2)InternetConnect建立一個FTP session。INTERNET_DEFAULT_FTP_PORT for the nServerPort parameter and INTERNET_SERVICE_FTP for the dwService parameter.
3)執行必要的操作。
4)InternetCloseHandle關閉由InternetConnect建立的FTP session。
5)InternetCloseHandle關閉由InternetOpen建立的FTP session。
FtpCreateDirectory、FtpDeleteFile及之後的幾個函數都需要InternetConnect返回的控制代碼。
InternetConnect需要InternetOpen返回的控制代碼。
同上,InternetFindNextFile需要FtpFindFirstFile的控制代碼。注意:當使用這兩個函數來遍曆FTP上的檔案夾時,InternetOpen傳遞的dwFlags參數必須是0。而且對同一個InternetConnect不能重複調用FtpFindFirstFile。
二、InternetOpen和InternetConnect函數介紹:
HINTERNET InternetOpen(
LPCTSTR lpszAgent,// 指定調用 WinINet 函數的應用程式或入口。該入口用作HTTP協議中使用者代理程式項。其實是自訂的名稱。如”MyFtp”、“mwj”等。
DWORD dwAccessType,//一般為INTERNET_OPEN_TYPE_PRECONFIG:返回註冊表中的代理或直接的配置。
LPCTSTR lpszProxyName,//一般為NULL。若參數dwAccessType不是INTERNET_OPEN_TYPE_PROXY,此參數應被設為NULL。
LPCTSTR lpszProxyBypass,//一般為NULL。若參數dwAccessType不是INTERNET_OPEN_TYPE_PROXY,此參數應被設為NULL。
DWORD dwFlags);// INTERNET_FLAG_ASYNC:僅能用於作用在該函數返回的控制代碼的子控制代碼上的非同步請求。INTERNET_FLAG_OFFLINE 與 INTERNET_FLAG_FROM_CACHE 相同:不做網路請求。所有的實體都由緩衝返回。若請求條目不在緩衝中,將返回一個錯誤。對於遍曆FTP伺服器上的檔案夾時,此參數必須為0。
HINTERNET WINAPI InternetConnect(
HINTERNET hInternet, //InternetOpen返回的控制代碼
LPCTSTR lpszServerName, //要串連的Internet server的名字或IP
INTERNET_PORT nServerPort, //對FTP用INTERNET_DEFAULT_FTP_PORT
LPCTSTR lpszUserName, //對FTP可用“anonymous”。設為NULL,對FTP將自動設為anonymous
LPCTSTR lpszPassword, //若為NULL,對FTP則自動使用anonymous的預設密碼
DWORD dwService, //對FTP用INTERNET_SERVICE_FTP
DWORD dwFlags, //一般為0
DWORD dwContext);//一般為0
此函數不僅可串連FTP還可串連HTTP。返回NULL表明串連失敗。