07-29-2011, 11:31 PM
Here's a file downloader using a webrequest that I modified to my own purpose:
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:
1024 is a byte conversion standard for 1kb, this can be changed depending on what you want
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