DownloadFile a través del Sistema.Net.WebClient no funciona
-
12-12-2019 - |
Pregunta
No puedo descargar cualquier archivo con el siguiente código:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
DownloadFile("http://mirror.switch.ch/ftp/mirror/videolan/vlc/2.0.3/vlc-2.0.3.tar.xz", "C:\TEST\vlc-2.0.3.tar.xz")
End Sub
Public Sub DownloadFile(ByVal _URL As String, ByVal _SaveAs As String)
Dim _WebClient As New System.Net.WebClient()
_WebClient.DownloadFile(_URL, _SaveAs)
End Sub
Errores siguientes pop-up:(traducido del alemán al inglés):
A partir de los Errores de Microsoft Pop-UP:
==> No tratados con excepcion de los de tipo "del Sistema.Net.WebException" apareció en System.dll.
Y en el depurador:
==> Excepcion de:Activa:"Un argumento no válido se ha especificado" (del Sistema.Net.Sockets.SocketException) Del Sistema.Net.Sockets.SocketException ha sido disparada."Un argumento no válido se ha especificado"
CÓDIGO COMPLETO:
Imports System
Imports System.Net
Public Class Form2
Dim str_hd As String
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For Each drive As System.IO.DriveInfo In My.Computer.FileSystem.Drives
Dim dbl_capacity As Double
Dim dbl_free As Double
Dim dbl_used As Double
If drive.IsReady Then
dbl_capacity = drive.TotalSize / 1073741824
dbl_free = drive.TotalFreeSpace / 1073741824
dbl_used = dbl_capacity - dbl_free
dbl_capacity = Fix(dbl_capacity * 1) / 1
dbl_free = Fix(dbl_free * 10) / 10
dbl_used = Fix(dbl_used * 10) / 10
str_hd = str_hd & "Laufwerk " & drive.Name & " - " _
& drive.VolumeLabel & vbCrLf _
& "Benutzt: " & dbl_used & " GB" & " / " & dbl_capacity & " GB" & vbCrLf & "Frei: " _
& dbl_free & "GB" & vbCrLf & "-------------------------------" & vbCrLf
End If
Next
txtbox_hd.Text = str_hd
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Form1.Close()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
DownloadFile("http://www.aerztekammer-hamburg.de/berufsrecht/Berufsordnung.pdf", "C:\TEST\Berufsordnung.pdf")
End Sub
Public Sub DownloadFile(ByVal _URL As String, ByVal _SaveAs As String)
Dim _WebClient As New System.Net.WebClient()
_WebClient.DownloadFile(_URL, _SaveAs)
End Sub
End Class
Solución
No la carpeta C:\TEST
existen?También, a partir de la documentación:
Cuando se utiliza este método en un nivel medio de aplicación, tales como ASP.NET página, usted recibirá un mensaje de error si la cuenta en la que la aplicación se ejecuta no tiene permiso para acceder al archivo.
Wenn Sie diese Methode en einer Anwendung der Media Lágrima verwenden, z.B.einer ASP.NET-Seite, erhalten Sie eine Fehlermeldung, wenn das Konto, unter dem die Anwendung ausgeführt wird, nicht über die Berechtigung zum Zugriff auf die Datei verfügt.