DownloadFile tramite System.net.WebClient non funziona
-
12-12-2019 - |
Domanda
Non riesco a scaricare alcun file con il codice seguente:
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
.
I seguenti errori si apriranno: (Tradotto dal tedesco all'inglese):
Dal pop-up di errore Microsoft:
==> A non trattata EXE) da Digitare "System.net.WebException" è apparso in System.dll.
e al debugger:
==> Exociation: attivato: "È stato specificato un argomento non valido" (system.net.sochets.socketException) System.Net.Sochets.Socket.Socket.Socket.SexPexception è stato attivato."È stato specificato un argomento non valido"
Codice 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
. Soluzione
Esistono la cartella C:\TEST
?Inoltre, dalla documentazione:
.Quando si utilizza questo metodo in un'applicazione di livello centrale, ad esempio una pagina ASP.NET, si riceverà un errore se l'account in cui l'applicazione esegue non ha l'autorizzazione per accedere al file.
Wenn Sie Diese Methode in Einer Anwendung Der 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 Dietei Verfügt.