//获得FTP连接
CInternetSession session("FTP Session");
CFtpConnection *pConn=NULL;
pConn=session.GetFtpConnection(FtpIp,FtpUsr,FtpPwd);//成功
......
//请问:用如下函数GetFile时,该函数总返回0(失败),不能获取指定目录下的文件到本地.但是我用相同的用户名/密码/IP地址telnet到UNIX服务器后,手动get可以获取指定目录下的文件,请指教.
int nRet = 0;
nRet = pConn->GetFile(ftp_file,obj_file,FALSE,FILE_ATTRIBUTE_NORMAL,FTP_TRANSFER_TYPE_ASCII,1))
//说明:服务器指定目录下的文件属主不是FtpUsr,但是既然手动可以get,为什么用函数就不可以呢?

解决方案 »

  1.   

    我有一个FTPCLIENT的例子,里面有中文注释,[email protected]
      

  2.   

    CInternetFile* pFtpFile = NULL;
    CFtp ftp;
    if( !ftp.Connect( "ftp://????", NULL, NULL ) ) //具体是你的ftp服务器的地址、后面两个参数是用户名和密码,如果位NULL则使用匿名登陆
    {
    // Message( "同服务器连接失败,请稍后再试!" );
    return;
    }//Message( "同ftp服务器连接成功!" );try
    {
      pFtpFile = ftp.OpenFile( "要下载的文件名", GENERIC_READ );
    }
    catch ( CInternetException* pEx )
    {
    //TCHAR szErr[1024];
    //if ( pEx->GetErrorMessage( szErr, 1024 ) )
    //Message( szErr );
      pEx->Delete();
    }char szBuff[1025];
    while( TRUE )
    {
      UINT uiReads = pFtpFile->Read( szBuff, 1024 );
      //出来szBuff中的数据...
      if( uiReads != 1024 ) break; //已经下载完毕
    }pFtpFile->Close();
    delete pFtpFile;
      

  3.   

    我是想用如下方法获取:
    CInternetSession session("FTP Session");
    CFtpConnection *pConn=NULL;
    pConn=session.GetFtpConnection(FtpIp,FtpUsr,FtpPwd);
    pConn->GetFile(ftp_file,obj_file,FALSE,FILE_ATTRIBUTE_NORMAL,FTP_TRANSFER_TYPE_ASCII,1));