Support Forums

Full Version: [VB] File Downloader With ProgressBar[VB]
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
File Downloader With ProgressBar


Step 1: Setting Everything up

-Add a Webclient To your toolbox. Just right click to toolbox, click add items, and type in webclient on the filter to add it.
-Design your form... Mine is below...


Step 2: Coding Button

Double Click the button and add this code...
Code:
webClient1.DownloadFileAsync(New Uri("http://www.downloadlink.com/filename.exe"), Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "/downloadedFile.exe")
You will need to edit the link ovbiously.
This Coding tells the webclient what to download and what the link is.

Step Three: Events

-Go to the Events of the WebClient. Go to DownloadProgressChanged and add this code...
Code:
progressBar1.Value = e.ProgressPercentage
-This updates the progressbar until it is complete.

You Are Done. If you want it to notify when the download is complete, you can add a messagebox or something under the downloadfilecomplete part of the events...

Sorry if its already posted, but i felt like making a tutorial.
This will be very useful when I finish and release my Batch Tools V2 Program.
I don't think this was posted before but you can always use the search button if you are unsure.
Thanks Smile
This will be very useful thanks for this
Cool mate very useful!
Thanks for the tut, I'll open Visual Basics and test it out right now. Smile
ALright. good luck. if you come across any problems, i can send you the source or just ask me
i will probably use this later, nice
I mite use this for my auto update system.
Here's a file downloader using a webrequest that I modified to my own purpose:

Code:
Imports System.Net
Imports System.IO

Public Class Form1

    Private Sub GetFile_Button(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'This can be changed
        Dim BuffSize As Integer = 1024
        Dim buffer(BuffSize) As Byte
        Dim size As Integer = 0
        Dim readbyte As Integer = 0

        Dim url As String = "MY FILE DOWNLOAD HTTP ADDRESS LOCATION"
        Dim req As HttpWebRequest = WebRequest.Create(url)
        Dim res As HttpWebResponse = req.GetResponse()
        Dim contents As Stream = res.GetResponseStream()

        Dim NewFile As New FileStream("C:\myfile.mp3", FileMode.OpenOrCreate, FileAccess.Write)

        'While size is not equal to -1
        While size <> -1
            size = contents.Read(buffer, 0, BuffSize)
            If size = 0 Then Exit While
            readbyte += size
            'Here is where you can display the amount of bytes downloaded in the form title
            Me.Text = readbyte & " bytes / " & FormatNumber((readbyte / 1024), 2) & " kb"
            'Show progress bar / status  

            If size < BuffSize Then
                Dim buff(size) As Byte
                Array.Copy(buffer, buff, size)
                NewFile.Write(buff, 0, size)
                buff = Nothing
            Else
                NewFile.Write(buffer, 0, size)
            End If

            Array.Clear(buffer, 0, size)
        End While

        NewFile.Close()
        contents.Close()
        'Here we clear the buffer array down to nothing
        buffer = Nothing
    End Sub
End Class

Works great, you can input the amount of bytes to download at a time so that your app doesn't freeze when downloading large files. The display get's put into the titlebar.

Amount of bytes to download in chunks can be changed through the buffer here:
Code:
Dim BuffSize As Integer = 1024

1024 is a byte conversion standard for 1kb, this can be changed depending on what you want
Wow, Coding Support, another amazing release from you! Thank-you!
Pages: 1 2