DownloadFileFromWebsite
Public Function DownloadFileFromWebsite(ByVal strURL As System.String, _
ByVal strOutputPath As System.String, _
Optional ByVal bDisplayProgress As System.Boolean = False) _
As System.Boolean
Dim bSuccess As System.Boolean
Dim objWebRequest As System.Net.WebRequest = Nothing
Dim myWebResponse As System.Net.WebResponse = Nothing
Dim objOutputFile As System.IO.FileStream = Nothing
Dim objBuffer(1024 * 5 - 1) As Byte 'buffer size set to 5K bytes
Dim iRead As System.Int32 = 0
Dim lTotalDownloaded As System.Int64 = 0
Dim lTotalLength As System.Int64 = 0
Dim dPercentComplete As System.Double = 0
Try
objWebRequest = System.Net.WebRequest.Create(strURL)
objWebRequest.Timeout = 20000
myWebResponse = objWebRequest.GetResponse()
objOutputFile = New System.IO.FileStream(strOutputPath, IO.FileMode.Create)
lTotalLength = myWebResponse.ContentLength
Do While (True)
iRead = myWebResponse.GetResponseStream.Read(objBuffer, 0, objBuffer.Length)
If iRead = 0 Then
Exit Do
End If
objOutputFile.Write(objBuffer, 0, iRead)
lTotalDownloaded += iRead
If bDisplayProgress Then
For i As System.Int32 = 0 To 100
Console.Write(ControlChars.Back)
Next
dPercentComplete = System.Convert.ToDouble(lTotalDownloaded) / lTotalLength * 100
Console.Write("Downloaded " + lTotalDownloaded.ToString + " of " + lTotalLength.ToString + " bytes, " + dPercentComplete.ToString("N2") + "% complete")
End If
Loop
bSuccess = True
Catch ex As Exception
Console.WriteLine("Error: " + ex.Message)
bSuccess = False
Finally
'close streams
objOutputFile.Close()
myWebResponse.Close()
End Try
Return bSuccess
End Function
ByVal strOutputPath As System.String, _
Optional ByVal bDisplayProgress As System.Boolean = False) _
As System.Boolean
Dim bSuccess As System.Boolean
Dim objWebRequest As System.Net.WebRequest = Nothing
Dim myWebResponse As System.Net.WebResponse = Nothing
Dim objOutputFile As System.IO.FileStream = Nothing
Dim objBuffer(1024 * 5 - 1) As Byte 'buffer size set to 5K bytes
Dim iRead As System.Int32 = 0
Dim lTotalDownloaded As System.Int64 = 0
Dim lTotalLength As System.Int64 = 0
Dim dPercentComplete As System.Double = 0
Try
objWebRequest = System.Net.WebRequest.Create(strURL)
objWebRequest.Timeout = 20000
myWebResponse = objWebRequest.GetResponse()
objOutputFile = New System.IO.FileStream(strOutputPath, IO.FileMode.Create)
lTotalLength = myWebResponse.ContentLength
Do While (True)
iRead = myWebResponse.GetResponseStream.Read(objBuffer, 0, objBuffer.Length)
If iRead = 0 Then
Exit Do
End If
objOutputFile.Write(objBuffer, 0, iRead)
lTotalDownloaded += iRead
If bDisplayProgress Then
For i As System.Int32 = 0 To 100
Console.Write(ControlChars.Back)
Next
dPercentComplete = System.Convert.ToDouble(lTotalDownloaded) / lTotalLength * 100
Console.Write("Downloaded " + lTotalDownloaded.ToString + " of " + lTotalLength.ToString + " bytes, " + dPercentComplete.ToString("N2") + "% complete")
End If
Loop
bSuccess = True
Catch ex As Exception
Console.WriteLine("Error: " + ex.Message)
bSuccess = False
Finally
'close streams
objOutputFile.Close()
myWebResponse.Close()
End Try
Return bSuccess
End Function