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

Downloader類別使用方法

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

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

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

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

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

基礎使用範例

建構Downloader實體

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

Dim DownloadManager As New Downloader("輸入下載的目標URL")
Dim DownloadManager As New Downloader("輸入下載的目標URL" , "儲存檔案的資料夾路徑")
Dim DownloadManager As New Downloader("輸入下載的目標URL" , "儲存檔案的資料夾路徑" , "儲存檔案的檔名")

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

佈置表單控制項元件

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

撰寫事件

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

4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '開始下載
	DownloadManager.TimerGate(Timer1, 1000) '將Timer1實體傳入DownloadManager中,並設定Interval為1000毫秒
	DownloadManager.SaveFullPath = "D:測試檔案.exe" '設定檔案的下載路徑
 
	DownloadManager.StartDownload() '開始進行下載
 
	While DownloadManager.CheckDownloading '如果正在下載中,就永遠執行迴圈
		Application.DoEvents() '停頓(多工)
	End While
 
	Select Case DownloadManager.GetStatus '取得狀態傳回值
		Case 0
			MsgBox("下載失敗", MsgBoxStyle.Critical)
		Case 1
			ProgressBar1.Value = 100
			MsgBox("下載成功。使用時間:" & DownloadManager.FormatTime(DownloadManager.GetDownloadedTime), MsgBoxStyle.Information)
	End Select
End Sub
 
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
	ProgressBar1.Value = DownloadManager.GetProgressPercentage '取得下載進度百分比(0~100)
End Sub

執行

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

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

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

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

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

迴響已關閉