将网络上的exe文件下载的指定目录如何实现哦?
感觉很有难度,网上找不到相关资料。
比如将http://hi.baidu.com/hi.exe 下载到D盘下。- -! 先还以为很简单的。 个位老大,谁给来一下~~~~50分。。

解决方案 »

  1.   

    不知道你问的是什么。选择目录用SHBrowseForFolder。
      

  2.   

    http://hi.baidu.com/hi.exe 就没这个文件,怎么下载阿?
      

  3.   

    你打头的是 http
    那就是使用 http 协议进行下载,在 MFC 中有专门的类,所以也不难,找找这方面的文章,跟着做即可。
      

  4.   

    1 CInet类或InternetOpen()等函数...
    2 直接使用 SOCKET 连接,send(socket,请求数据,sizeof(请求数据)).HTTP通信协议来完成会话和文件下载
    HTTP请求数据头
    GET /hi.exe  HTTP/1.1
    Host: hi.baidu.com
    Accept: */*
    Pragma: no-cache
    Cache-Control: no-cache
    User-Agent: YourClient
    Referer: http://hi.baidu.com/
    Connection: close
      

  5.   

    我可以给你完整的源代码,不过要收分或收RMB的,你自己考虑啊。
      

  6.   

    自己参考一下
    这个是在线程函数里写的CEBookDlg* pDlg=(CEBookDlg*)lParam;
    CString sUrl("http://ns.ivansms.com/IO/IBUpdate/sms.txt");
    //DWORD dwServiceType;
    CString strServer;
    CString strObject;
    INTERNET_PORT nPort; CInternetSession session("session");
    CHttpConnection* pHttp=NULL;
    CHttpFile *pFile=NULL;
    UINT nCount=-1;
    char buf[1024];
    CString strText;
    CFile file;
    memset(buf,0,sizeof(buf));
    TRY {
    pHttp=session.GetHttpConnection(sUrl,nPort);
    if(pHttp==NULL)
    {
    //AfxMessageBox("FALSE");
    pDlg->m_bSmsInfo=FALSE;
    pDlg->strSmsInfo="";
    return 0;
    }
    //CString str;
    //str.Format("%d",nPort);
    //AfxMessageBox(str);
    pFile=(CHttpFile*)session.OpenURL(sUrl);
    if(pFile)
    {
    CString szContent;
    DWORD dwFlags=HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER;
    DWORD dwStatus;
    DWORD dwBuffLen=sizeof(dwStatus);
    BOOL bResult=FALSE;
    bResult=pFile->QueryInfo(dwFlags,&dwStatus,&dwBuffLen);
    if(bResult && dwStatus>=200 && dwStatus<300)
    {
    while((nCount=pFile->Read(buf,1023))!=0)
    {
    //strText+=buf;
    pDlg->strSmsInfo+=buf;
    memset(buf,0,sizeof(buf));
    }
    //AfxMessageBox(strText);
    }
    else
    {
    pDlg->m_bSmsInfo=FALSE;
    pDlg->strSmsInfo="";
    if(pFile)
    {
    pFile->Close();
    pFile=NULL;
    }
    if(pHttp)
    {
    pHttp->Close();
    pHttp=NULL;
    }
    //session.Close();
    }
    }
    else
    {
    //AfxMessageBox("HttpFile Error!");
    pDlg->m_bSmsInfo=FALSE;
    pDlg->strSmsInfo="";
    }
    if(pFile)
    {
    pFile->Close();
    pFile=NULL;
    }
    if(pHttp)
    {
    pHttp->Close();
    pHttp=NULL;
    }
    if(session)
    {
    session.Close();
    }
    }
    CATCH (CMemoryException, e)
    {
    //pFile=(CHttpFile*)
    //AfxMessageBox("ERROR");
    pDlg->m_bSmsInfo=FALSE;
    pDlg->strSmsInfo="";
    if(pFile)
    {
    pFile->Close();
    pFile=NULL;
    }
    if(pHttp)
    {
    pHttp->Close();
    pHttp=NULL;
    }
    }
    END_CATCH
    session.Close(); //AfxMessageBox(pDlg->strSmsInfo);
    return 0;