使用wininet进行FTP文件上传和下载

包含头文件:#include <wininet.h>

链拉库文件:WININET.LIB

使用方法:

1.建立连接:

HINTERNET hftp= InternetOpen("PromulgateSys",0,0,0,0);
HINTERNET fftphandle = InternetConnect(hftp,sysDlg->m_strIPAddress,atoi(sysDlg->m_strPortNumber.GetBuffer(0)),sysDlg->m_strUserName,sysDlg->m_strUserPWD,INTERNET_SERVICE_FTP,0,0);
if(!fftphandle)
{
   CString errorInfo="连接FTP服务器失败,没有拷贝任何文件!/n";
    return 0;
}

2.目录切换

获取当前目录:

unsigned long len = 256;
char buff[256];
FtpGetCurrentDirectory(fftphandle,buff,&len);

设置当前目录:

FtpSetCurrentDirectory(fftphandle,dir);

3.查找文件或目录

WIN32_FIND_DATA wfd;

CString findfileStr="";
findfileStr.Format("%s/%s",sysDlg->m_strFTPDir,"*.*");
HINTERNET haveFound=FtpFindFirstFile(fftphandle,findfileStr,&wfd,0,0);
if(!haveFound)
{
   if(!FtpCreateDirectory(fftphandle,dir))
   {

    InternetCloseHandle(fftphandle);
    InternetCloseHandle(hftp);

    return 0;
   }
   else
   {
    errorInfo="-->成功创建目录/"+sysDlg->m_strFTPDir+"/n";
    ::SendMessage(sysDlg->m_edtProgressCtrl.GetSafeHwnd(),ME_APPEND_TEXT,0,(LPARAM)&errorInfo);
   }
}
//------------------------------------------------------------------------------------------------- 每次使用FtpFindFirstFile后,一定要关闭返回的句柄
InternetCloseHandle(haveFound);

4.文件操作

FtpPutFile(fftphandle,strSrc,fileFind.GetFileName(),FTP_TRANSFER_TYPE_BINARY,0);

BOOLAPI FtpGetFile(
     HINTERNET hConnect,
     LPCSTR lpszRemoteFile,
     LPCSTR lpszNewFile,
     BOOL fFailIfExists,
     DWORD dwFlagsAndAttributes,
     DWORD dwFlags,
     DWORD_PTR dwContext
     );

你可能感兴趣的:(文件上传)