2012-10-01 54 views
0

我無法下載任何文件,下面的代碼:通過System.Net.WebClient DownloadFile不工作

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 

以下錯誤會彈出:(德國翻譯成英文):

從Microsoft錯誤彈出: enter image description here

==>類型System.Net.WebException的一個未處理的exeption出現在System.dll中。

,並在調試器: enter image description here

==> Exeption:觸發: 「無效的參數已經被指定」(System.Net.Sockets.SocketException)System.Net.Sockets.SocketException已被觸發。 「無效的參數已經被指定爲」

全碼:

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 

回答

1

是否該文件夾C:\TEST存在嗎?此外,從文檔:

當在中間層應用程序使用此方法,如ASP.NET頁面,你會收到一個錯誤,如果應用程序執行時所使用的帳戶沒有權限訪問文件。

Wenn Sie diese在einer Anwendung der Middle-Tear verwenden,z。 B. einer ASP.NET-Seite,erhalten Sie eine Fehlermeldung,wenn das Konto,unter dem die die Anwendungausgeführtwird,nichtüberdie Berechtigung zum Zugriff auf die Dateiverfügt。

+0

是的,文件夾「C:\ TEST」存在。我怎樣才能爲此設置一個帳戶?當您在瀏覽器中鍵入給定的url時,該文件將被下載而沒有權限檢查... –

+0

您是否正在創建ASP.NET頁面?如果Internet信息服務沒有對​​該文件夾的寫入權限,則上述操作僅會創建一個錯誤。 –

+0

Nop,我沒有創建任何ASP.NET頁面。我只嘗試從它的ftp服務器下載該文件。我會在1分鐘添加完整代碼.. –