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

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

      開發(fā)環(huán)境:WINDOWS 2000 + VC++6.0
      使用語言:C
      實現(xiàn)功能:下載網(wǎng)絡資源

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

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

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

      在這個簡單的程序我們只關心第二和第三個參數(shù),其他的通通設置成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))               //調用判斷文件名是否重名函數(shù)
            {
                printf(連接中……n);
            h= URLDownloadToFile(0,downurl,path,0,0); //下載文件
          if(h==S_OK)                       //判斷是否下載完成          
            {
                printf(文件下載成功!n);
            printf(文件保存路徑:%sn,path);
            return reslut;                 //函數(shù)返回0
            }
              else
              {
              reslut=1;
                return reslut;             //函數(shù)返回1
              }

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

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

      北大青鳥網(wǎng)上報名
      北大青鳥招生簡章
      主站蜘蛛池模板: 一区二区日韩国产精品| 日韩一区二区三区无码影院| 制服丝袜一区在线| 免费一区二区三区四区五区| 国产精品亚洲高清一区二区| 多人伦精品一区二区三区视频| 久久久人妻精品无码一区| 人妻AV中文字幕一区二区三区| 国产精品成人国产乱一区| 视频在线观看一区二区| 亚洲一区二区免费视频| 亚洲福利视频一区| 亚洲国产精品乱码一区二区 | 国产精品久久久久久麻豆一区| 国产精品99无码一区二区| 日韩AV在线不卡一区二区三区| 亲子乱av一区区三区40岁| 日韩一区二区视频| 中文字幕亚洲综合精品一区| 久久婷婷色一区二区三区| 国产精品视频一区二区噜噜| 又硬又粗又大一区二区三区视频| 一区二区三区中文| 岛国精品一区免费视频在线观看| 视频一区在线免费观看| 国产福利电影一区二区三区久久老子无码午夜伦不 | 国产精品无码一区二区三区在| 国产吧一区在线视频| 无码国产精品一区二区免费| 精品女同一区二区三区免费站| 亚洲一区二区久久| 亚洲视频在线一区二区三区| 日产精品久久久一区二区| 天堂va在线高清一区| 国产精品乱码一区二区三| 国产aⅴ一区二区| 中文字幕久久亚洲一区| 亚洲国产精品一区第二页| 中文字幕人妻第一区| 精品国产一区二区三区www| 无码人妻久久一区二区三区蜜桃 |