windows下FTP下载文件代码(c语言)
windows下FTP下载文件(c语言)
(无注释版)
#include <stdio.h>#include <windows.h>#include <wininet.h>#include <process.h>#pragma comment(lib, "WININET.LIB")int main(){BOOL bSuccess;HINTERNET hIntSession;HINTERNET hFtpSession;//HINTERNET hFind;//char szBuffer[64];//WIN32_FIND_DATA findData;char szAppName[] = "mydll";char szServer[] = "192.168.101.225";char szUser[] = "qpid";char szPwd[] = "qpid";char szDirectory[] = "/home/qpid/mydll";char szFile[] = "mylib.dll";char szCurDir[MAX_PATH];char szNewFile[] = "c:\\mylib.dll";DWORD dwCurDir = MAX_PATH;printf("try to open intSession...\n");hIntSession = InternetOpen(szAppName, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);if(hIntSession == NULL) {printf("can not open intSession!\n");return -1;}printf("intSession is open!\n");printf("try to open ftpSession...\n");hFtpSession = InternetConnect(hIntSession, szServer, INTERNET_DEFAULT_FTP_PORT, szUser, szPwd, INTERNET_SERVICE_FTP, 0, 0);if(hFtpSession == NULL) {InternetCloseHandle(hIntSession);printf("can not open ftpSession!\n");return -1;}printf("ftpSession is open!\n");ZeroMemory(szCurDir, sizeof(szCurDir));FtpGetCurrentDirectory(hFtpSession, szCurDir, &dwCurDir);printf("current dir is %s .\n", szCurDir);printf("try to set current directory...\n");bSuccess = FtpSetCurrentDirectory(hFtpSession, szDirectory);if(!bSuccess){InternetCloseHandle(hFtpSession);InternetCloseHandle(hIntSession);printf("can not set directory!\n");return -1;}printf("set directory ok!\n");printf("try to get file...\n");FtpGetFile(hFtpSession, szFile, szNewFile, TRUE, FILE_ATTRIBUTE_NORMAL, FTP_TRANSFER_TYPE_BINARY, 0);//InternetCloseHandle(hFind);InternetCloseHandle(hFtpSession);InternetCloseHandle(hIntSession);return 0;}