北京北大青鳥學校:如何編寫一個下載程序(上)

      我們每天都會在網上下載很多軟件,無論是辦公軟件還是游戲軟件,都能在網上很輕松的下到本地電腦。那么我們自己能否編寫一套下載程序呢?今天,北京北大青鳥學校就為大家介紹一下如何編寫一個非常簡單的下載小程序。

      開發環境:WINDOWS 2000 + VC++6.0
      使用語言:C
      實現功能:下載網絡資源

      首先我們要建立一個文件夾來存放下載的軟件,利用Directory();就可以輕松實現。代碼如下:
      int Directory()
      {
      //建立目錄,如果成功返回1,不成功返回0
          int D;
            D=CreateDirectory(c:mydownload,NULL);
              return D;
      }

      當文件夾存在時,函數將什么也不做,達到文件夾不存在時建立文件夾的目的。
      我們利用URLDownloadToFile();這個函數來實現下載,我們來簡單的看一下這個函數的簡單介紹:
      URLDownloadToFile函數原型:
      HRESULT URLDownloadToFile(      
                           LPUNKNOWN pCaller,
                           LPCTSTR szURL,
                           LPCTSTR szFileName,
                           DWORD dwReserved,
                           LPBINDSTATUSCALLBACK lpfnCB
                          );(北京北大青鳥學校)
      這個API是在URLMON.DLL文件中的一個導出函數,簡單的實現了把一個文件從WEB服務器下載本機的功能,其實用這個函數還可以幫我們處理了斷點續傳,緩存等等的功能。

      URLDownloadToFile的五個參數:
      第一個 一般為NULL。
      第二個 參數就是要下載文件的目標URL,完整路徑。
      第三個 是本地保存路徑,也是完整路徑。
      第四個 是保留,必須為0。
      第五個 是指向一個IBindStatusCallback接口的指針,這就類似一種回調機制,你可以參考這些來活動當前下載進度,選擇是否繼續下載等等.

      在這個簡單的程序我們只關心第二和第三個參數,其他的通通設置成0。具體代碼如下:
      int downfile(char *downurl)
      {
          //下載文件保存到c:mydownload目錄下。
        HRESULT h;
        char *filename;            
        char *tk;              
        char url[MAX_PATH];        
        char path[MAX_PATH];        
        char st[]=/;
        int reslut=0;          

          strcpy (url,downurl);           //將下載路徑拷貝到URL中  
        tk=strtok(url,st);                 // 獲取下載路徑中的文件名

        while(tk!=NULL)
            {
              filename=tk;    
              tk=strtok(NULL,st);
            }

          strcpy(path,c:mydownload);     //將c:mydownload拷貝到PATH中
        strcat(path,filename);               //連接字符串,得到完整保存路徑      
         
            if(file(path))               //調用判斷文件名是否重名函數
            {
                printf(連接中……n);
            h= URLDownloadToFile(0,downurl,path,0,0); //下載文件
          if(h==S_OK)                       //判斷是否下載完成          
            {
                printf(文件下載成功!n);
            printf(文件保存路徑:%sn,path);
            return reslut;                 //函數返回0
            }
              else
              {
              reslut=1;
                return reslut;             //函數返回1
              }

            }
            else
              {
              exit(0);
              }
      }(北京北大青鳥學校)

        根據函數返回值我們來進行判斷:
              i=downfile(u);
              if(i==0)
              {
                printf(謝謝使用。n);
              }
                  else
                    {
                    printf(n未找到下載文件,請檢查下載地址是否正確n);
                    }
      (北京北大青鳥學校,未完)

      北大青鳥網上報名
      北大青鳥招生簡章
      主站蜘蛛池模板: 日韩一区二区a片免费观看| 男人免费视频一区二区在线观看 | 天天躁日日躁狠狠躁一区| 杨幂AV污网站在线一区二区| 色欲精品国产一区二区三区AV| 无码毛片一区二区三区视频免费播放| 国产电影一区二区| 精品无码av一区二区三区| 成人午夜视频精品一区| 精品不卡一区中文字幕| 国产一区在线视频观看| 在线视频一区二区日韩国产| 久久精品成人一区二区三区| 无码精品人妻一区二区三区中| 亚洲一区二区三区偷拍女厕 | 亚洲AV综合色区无码一区| 岛国精品一区免费视频在线观看| 精彩视频一区二区| 天堂一区二区三区精品| 天堂一区二区三区精品| 理论亚洲区美一区二区三区 | 国产精品视频一区| 国产成人欧美一区二区三区| 国产成人欧美一区二区三区 | 无码少妇一区二区三区芒果| 亚洲午夜精品一区二区麻豆| 亚洲av成人一区二区三区观看在线| 极品人妻少妇一区二区三区 | 国产韩国精品一区二区三区| 亚洲一区视频在线播放| 国产一区二区在线观看app| 中文乱码精品一区二区三区| 国产在线无码视频一区二区三区| 国产一区二区在线视频| 91视频国产一区| 国产精品久久久久一区二区| 高清一区二区三区视频| 亚洲乱码国产一区三区| 国产福利一区二区三区在线观看| 国产一区二区不卡老阿姨| 冲田杏梨高清无一区二区|