linux ftp下载函数函数,FTP下载的函数
最近寫的一個(gè)到指定FTP下載服務(wù)器上下載的函數(shù),主要用到類有CInternetSession,CFtpConnection
具體內(nèi)容看代碼吧,這個(gè)不能的!雖然很簡單,不值得往外寫,但我想收藏起來留著以后用也是很有意義的。
/************************************************************************/
/* 到指定的FTP服務(wù)器上下載的函數(shù)?????????????????????????????????????? */
/* liuxwin????????????????????????????????????????????????????????????? */
/* 20006.12.29????????????????????????????????????????????????????????? */
/* 返回值: 成功 TRUE, 失敗 FALSE????????????????????????????????????? */
/*
參數(shù)說明:
FtpPath?? 要下載的ftp 目錄或文件
localPath??? 保存到本地的目錄
ftpAdd?????? ftp地址
ftpSuser 登陸ftp的用戶名
ftpPass?????? 登陸ftp的密碼
sErr????????? 發(fā)生錯(cuò)誤時(shí),返回的錯(cuò)誤信息*/
/************************************************************************/
BOOL GetFileFromFTP( CString FtpPath, CString LocalPath ,CString ftpAdd, CString ftpUser, CString ftpPass, CString &sErr )
{
CString sTemp ;
CString sLocalTemp ;
CString sTempFtpPath ;
CInternetSession? pInternetCon(AfxGetAppName(),1,PRE_CONFIG_INTERNET_ACCESS);
CFtpConnection *pFtpCon ;
try
{
pFtpCon =pInternetCon.GetFtpConnection( ftpAdd, ftpUser, ftpPass, INTERNET_DEFAULT_FTP_PORT );
if ( pFtpCon != NULL)
{
CFtpFileFind FtpFinder( pFtpCon ) ;
BOOL bWork = FtpFinder.FindFile( FtpPath );
while ( bWork )
{
bWork = FtpFinder.FindNextFile() ;
if ( FtpFinder.IsDots() )
continue;
if(FtpFinder.IsDirectory() )
{? //是目錄
sTemp.Empty() ;
sTemp = FtpFinder.GetFileName() ;
sTempFtpPath.Empty() ;
sTempFtpPath = FtpPath + "/"+ sTemp? ;
sLocalTemp.Empty() ;
sLocalTemp = LocalPath + "\\" + sTemp ;
CFileStatus?? rStatus;
if( !( CFile::GetStatus( sLocalTemp, rStatus ) ) )
{//文件夾不存在, 創(chuàng)建之
if( !(CreateDirectory((LPCTSTR)sLocalTemp, NULL)) )
{//創(chuàng)建失敗
DWORD dErr = GetLastError() ;
sErr.Format( "創(chuàng)建新目錄失敗: ERROR? %d" ,dErr ) ;
return FALSE ;
}
}
GetFileFromFTP( sTempFtpPath, sLocalTemp, ftpAdd, ftpUser, ftpPass, sErr ) ;
}
else
{
sTemp.Empty() ;
sTemp = FtpFinder.GetFileName();
sLocalTemp.Empty() ;
sLocalTemp = LocalPath + "\\" + sTemp ;
sTemp.Empty() ;
sTemp = FtpFinder.GetFilePath();//
CFileStatus?? rStatus;
if( !( CFile::GetStatus( sLocalTemp, rStatus ) ) )
{//文件不存在,下載之
if( !( pFtpCon->GetFile( sTemp, sLocalTemp, true, FILE_ATTRIBUTE_NORMAL, FTP_TRANSFER_TYPE_BINARY, 1) ) )
{//下載失敗
DWORD dErr = GetLastError() ;
sErr.Format( "下載失敗: ERROR? %d" ,dErr ) ;
return FALSE ;
}
else
WriteLog( "下載成功", 1 ) ;
}
}
}
FtpFinder.Close() ;
}
}
catch (CInternetException * pEx)
{
TCHAR szError[1024];
pEx->GetErrorMessage(szError,1024) ;
sErr.Format( "連接FTP失敗:%s", pEx ) ;
pEx->Delete();
pFtpCon=NULL;
return FALSE ;
}
return TRUE ;
}
總結(jié)
以上是生活随笔為你收集整理的linux ftp下载函数函数,FTP下载的函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java怎么弄redis,java怎么使
- 下一篇: 在matlab中使用spm8,在matl