Pergunta

Eu não posso fazer download de qualquer arquivo com o código a seguir:

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

A seguir os erros de pop-up:(traduzido de alemão para inglês):

A partir da Microsoft Pop-UP de Erro:enter image description here

==> Um não tratada isenção do tipo de Sistema".Líquida.WebException" apareceu em System.dll.

E no depurador:enter image description here

==> Exeption:Acionado:"Um argumento inválido foi especificado" (Sistema.Líquida.Sockets.SocketException) Do Sistema.Líquida.Sockets.SocketException foi acionado."Um argumento inválido foi 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
Foi útil?

Solução

A pasta C:\TEST existem?Também, a partir da documentação:

Quando utilizar este método em um aplicativo da camada intermediária, como um ASP.NET página, você vai receber um erro se a conta sob a qual o aplicativo é executado não tem permissão para acessar o arquivo.

Wenn Sie diese Methode in einer Anwendung der Meia-Lágrima verwenden, z.B.einer ASP.NET-Seite, erhalten Sie eine Fehlermeldung, wenn das Konto, unter dem morrer Anwendung ausgeführt wird, nicht über die Berechtigung zum Zugriff auf die Datei verfügt.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top