日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

linux ftp下载函数函数,FTP下载的函数

發布時間:2024/9/27 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux ftp下载函数函数,FTP下载的函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近寫的一個到指定FTP下載服務器上下載的函數,主要用到類有CInternetSession,CFtpConnection

具體內容看代碼吧,這個不能的!雖然很簡單,不值得往外寫,但我想收藏起來留著以后用也是很有意義的。

/************************************************************************/

/* 到指定的FTP服務器上下載的函數?????????????????????????????????????? */

/* liuxwin????????????????????????????????????????????????????????????? */

/* 20006.12.29????????????????????????????????????????????????????????? */

/* 返回值: 成功 TRUE, 失敗 FALSE????????????????????????????????????? */

/*

參數說明:

FtpPath?? 要下載的ftp 目錄或文件

localPath??? 保存到本地的目錄

ftpAdd?????? ftp地址

ftpSuser   登陸ftp的用戶名

ftpPass?????? 登陸ftp的密碼

sErr????????? 發生錯誤時,返回的錯誤信息*/

/************************************************************************/

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 ) ) )

{//文件夾不存在, 創建之

if( !(CreateDirectory((LPCTSTR)sLocalTemp, NULL)) )

{//創建失敗

DWORD dErr = GetLastError() ;

sErr.Format( "創建新目錄失敗: 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 ;

}

總結

以上是生活随笔為你收集整理的linux ftp下载函数函数,FTP下载的函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。