VC实现FTP文件下载

     BOOL bRes;
     HINTERNET hInternet;
     HINTERNET hConnect;
     hInternet = InternetOpen("A3GS Sample", 
         INTERNET_OPEN_TYPE_DIRECT, 
         NULL, 
         NULL, 
         INTERNET_FLAG_NO_CACHE_WRITE);
     if ( NULL == hInternet )
     {
         printf( "InternetOpen Error:%d\n", GetLastError() );
         return 0;
     }
     hConnect  = InternetConnect(hInternet, 
         ftp地址, 
         INTERNET_DEFAULT_FTP_PORT, 
         用户名, 
         密码, 
         INTERNET_SERVICE_FTP, 
         INTERNET_FLAG_EXISTING_CONNECT || INTERNET_FLAG_PASSIVE,
         0 );

     if ( NULL == hInternet )
     {
         printf( "InternetConnect Error:%d\n", GetLastError() );
         InternetCloseHandle(hInternet);
         return 0;
     }
//设置ftp的文件所在的文件夹
     FtpSetCurrentDirectory (hConnect, "./pub/download/bt/") ;

     bRes = FtpGetFile(hConnect, 

         ftp的文件名, 

         下载后存放本地的文件名(加路径), 

         FALSE, 

         FILE_ATTRIBUTE_ARCHIVE, 

         FTP_TRANSFER_TYPE_UNKNOWN, 

         0);

     if ( bRes == 0 )
     {
         printf( "FtpGetFile Error:\n", GetLastError() );

     }else{
         printf( "FtpGetFile Success!\n" );

     }
     InternetCloseHandle(hConnect);
     InternetCloseHandle(hInternet);

补充一些API函数
 InternetOpen 初始化 Win32 internet
InternetConnect 打开一个FTP, HTTP, or Gopher 应用会话
FtpCreateDirectory 在服务器上建立一个新的目录
FtpRemoveDirectory 删除服务器上的一个目录
FtpOpenFile 打开服务器上的一个文件进行读写
FtpGetFile 接收指定的文件并且在本地建立它
FtpPutFile 发送指定文件到服务器
FtpDeleteFile 删除服务器上一个指定的文件
FtpSetCurrentDirectory 设置服务器上当前的工作目录
FtpGetCurrentDirectory 返回服务器当前的工作目录
FtpCommand 发送命令到服务器
FtpFindFirstFile 返回文件信息。放在 WIN32_FIND_DATA 结构中
InternetFindNextFile 调用 FtpFindFirstFile()后在目录中连续查找
FtpRenameFile 修改服务器上指定的文件的名字 

作者: scott_pheonix   发布时间: 2010-11-23