[VB2010]如何使用URL(網址)下載檔案?

Downloader類別使用方法

在Windows Form應用程式專案內加入Downloader類別

使用Downloader類別之前,需先將它加入到專案內。我會比較習慣另外新增一個模組(Module)來放自己寫的Public Class,所以先加入模組吧!

取好新模組的名稱後按下「新增」。

編輯剛才加入的模組程式碼。

貼上文章第一頁提供的一大串Downloader類別程式碼。

基礎使用範例

建構Downloader實體

首先要在Form(以Form1為例)內宣告一個全域變數(以DownloadManager為例,可自行更改)來建立Downloader的類別實體。建構的方法有三種,分別如下:

Dim WithEvents Client As New Net.WebClient()
Client.DownloadFileAsync(New Uri("網址輸入在此"), "儲存路徑輸入在此")
Client.CancelAsync()

在此以下載小紅傘的安裝程式為例。

佈置表單控制項元件

表單控制項元件可以任意佈置,沒有硬性規定哪些一定要有。在這裡我佈置Button(Button1)、ProgressBar(ProgressBar1)、Timer(Timer1)各一個。按下Button1會讓下載程序開始,ProgressBar1會顯示目前的下載進度,而Timer1則是用來定時存取Downloader實體的資料。布置結果如下圖:

撰寫事件

接著要撰寫Button1的Click事件和Timer1的Tick事件。程式碼如下:

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

執行

程式碼撰寫完畢後,就可以執行了。首先按下「Button1」,觸發Click事件,讓Downloader實體開始進行下載程序。

在下載的過程中,可以在底下的「即時運算視窗」看到即時的下載狀況。

表單上的ProgressBar1可以使用Downloader的TimerGate方法所載入的Timer1控制項的Tick事件,在固定間隔時間(Interval)改變Value值。

下載完成後可以利用Select Case抓取Downloader的GetStatus方法所傳回的狀態值,進而決定之後要進行的動作。

文章分類:VB.net|標籤:, , , ,

迴響已關閉