本文主要是介绍C语言通过MFC访问FTP,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
// ConsoleApplication10.cpp : 定义控制台应用程序的入口点。
//
#include “stdafx.h”
#include <stdio.h>
#include <tchar.h>
#include <process.h>
#include <afxinet.h>
#include <wininet.h>
#include <windows.h>
#include
using namespace std;
//把string转换为LPCWSTR
LPCWSTR stringToLPCWSTR(std::string orig)
{
size_t origsize = orig.length() + 1;
const size_t newsize = 100;
size_t convertedChars = 0;
wchar_t *wcstring = (wchar_t )malloc(sizeof(wchar_t)(orig.length() - 1));
mbstowcs_s(&convertedChars, wcstring, origsize, orig.c_str(), _TRUNCATE);
return wcstring;
}
//连接FTP下载文件
int _tmain(int argc, _TCHAR* argv[])
{
BOOL bSuccess;
HINTERNET hIntSession;
HINTERNET hFtpSession;
char szAppName[] = “mydll”;
char szServer[] = “192.168.59.133”;
char szUser []= “ftp_user”;
string szPwd = “ftp_user”;
char szDirectory[] = “11/111”;
char szFile[] = “11111.pdf”;
char szCurDir[MAX_PATH];
char szNewFile[] = “c:\5\11111.pdf”;
DWORD dwCurDir = MAX_PATH;
printf(“try to open intSession…\n”);
hIntSession = InternetOpen(stringToLPCWSTR(“Update 1.0”), 0, 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”);
CString QueryID;
hFtpSession = InternetConnect(hIntSession, stringToLPCWSTR(szServer), INTERNET_DEFAULT_FTP_PORT, stringToLPCWSTR(szUser), stringToLPCWSTR(szPwd), INTERNET_SERVICE_FTP, 0, 0);
if (hFtpSession == NULL)
{
InternetCloseHandle(hIntSession);
printf(“can not open ftpSession!\n”);
return -1;
}
printf(“ftpSession is open!\n”);
printf(“try to set current directory…\n”);
bSuccess = FtpSetCurrentDirectory(hFtpSession, stringToLPCWSTR(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, stringToLPCWSTR(szFile), stringToLPCWSTR(szNewFile), TRUE, FILE_ATTRIBUTE_NORMAL, FTP_TRANSFER_TYPE_BINARY, 0);
InternetCloseHandle(hFtpSession);
InternetCloseHandle(hIntSession);
return 0;
}
这篇关于C语言通过MFC访问FTP的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!