[VB2010]HyperURLGetter─專門讀取網路資源的類別
HyperURLGetter類別使用方法
在Windows Form應用程式專案內加入HyperURLGetter類別
使用HyperURLGetter類別之前,需先將它加入到專案內。以前我習慣另外新增一個模組(Module)來放自己寫的Public Class,但是這個HyperURLGetter實在是有點龐大,乾脆把它另外獨立成一個Class檔案吧!因此若要使用HyperURLGetter,請先加入類別。
取好類別的檔案名稱後按下「新增」。
貼上文章第一頁提供的一大串HyperURLGetter類別程式碼。
基礎使用範例
建構HyperURLGetter實體
首先要在Form(以Form1為例)內宣告一個全域變數(以DownloadManager為例,可自行更改),並運用WithEvents建立帶有事件的HyperURLGetter類別實體。建構的方法有三種,分別如下:
Dim WithEvents Client As New Net.WebClient() |
Client.DownloadFileAsync(New Uri("網址輸入在此"), "儲存路徑輸入在此") |
Client.CancelAsync() |
在此以下載小紅傘的安裝程式為例。
Private Sub Client_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles Client.DownloadProgressChanged '當Client正在下載時 'e.BytesReceived 取得已下載的檔案大小 'e.TotalBytesToReceive 取得總共要下載的檔案大小 'e.ProgressPercentage 取得目前的下載進度百分比(整數) End Sub |
佈置表單控制項元件
表單控制項元件可以任意佈置,沒有硬性規定哪些一定要有。在這裡我佈置Button(Button1)和ProgressBar(ProgressBar1)各一個。按下Button1會讓下載程序開始,ProgressBar1會顯示目前的下載進度。布置結果如下圖:
撰寫事件
接著要撰寫Button1的Click事件,和DownloadManager的ProgressLoading與ProgressCompleted事件。完成後的程式碼如下:
Private Sub Client_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles Client.DownloadFileCompleted '當Clien結束下載 'e.Cancelled 判斷是否為中斷(取消)下載 'e.Error '判斷下載過程是否因發生錯誤而停止下載 End Sub |
執行
程式碼撰寫完畢後,就可以執行了。首先按下「Button1」,觸發Click事件,讓HyperURLGetter實體開始進行網路資源的讀取程序。
進度列也會隨著下載進度而變化。
在HyperURLGetter讀取網路資源的過程中,可以在底下的「即時運算視窗」看到即時的網路連線狀況。