-1

自動ファイルダウンローダーを作成していますが、ボタンを押したときにファイルを再ダウンロードして上書きする必要があります。

これが私のコードです:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  My.Computer.Network.DownloadFile _
    ("http://www.randomurl.com/randomfile.txt", _
    Path.Combine(Environment.GetFolderPath( _
    Environment.SpecialFolder.ApplicationData), _
    "test/randomfile.txt"))
End Sub
4

2 に答える 2

5

前のファイルの上書きを可能にするDownloadFileのオーバーロードがあります

 My.Computer.Network.DownloadFile 
       (address, destinationFileName, userName,
        password, showUI, connectionTimeout, overwrite)

MSDNから

  • アドレス=文字列またはURI。ダウンロードするファイルのパス(ファイル名とホストアドレスを含む)。必須。
  • destinationFileName=文字列。ダウンロードしたファイルのファイル名とパス。必須。
  • userName=String。認証するユーザー名。デフォルトは空の文字列""です。
  • password=String.Passwordを認証します。デフォルトは空の文字列""です。
  • showUI=Boolean。操作の進行状況を表示するかどうかを指定します。デフォルトはFalseです。
  • connectionTimeout=Int32。タイムアウト間隔(ミリ秒単位)。デフォルトは100秒です。
  • 上書き=ブール値。既存のファイルを上書きするかどうかを指定します。デフォルトはFalseです。

したがって、この方法でコードを変更できます

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  My.Computer.Network.DownloadFile _
    (address := "http://www.randomurl.com/randomfile.txt", _
    destinationFileName := Path.Combine(Environment.GetFolderPath( _
    Environment.SpecialFolder.ApplicationData), _
    "test/randomfile.txt"), _
    userName := string.Empty, password := string.Empty, _
    showUI := False, connectionTimeout := 100000, _
    overwrite := True)
End Sub
于 2013-03-10T17:24:48.883 に答える
1
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim uri As System.Uri = New System.Uri("http://www.randomurl.com/randomfile.txt")
    Dim webclient As System.Net.WebClient = New System.Net.WebClient()

    Dim path As String = New String(System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "test\\randomfile.txt"))
    Dim fileInfo As System.IO.FileInfo = New System.IO.FileInfo(path)
    If Not System.IO.Directory.Exists(fileInfo.Directory.FullName) Then
        System.IO.Directory.CreateDirectory(fileInfo.Directory.FullName)
    End If

    AddHandler webclient.DownloadFileCompleted, AddressOf webclient_DownloadDataCompleted

    webclient.DownloadFileAsync(uri, path)

End Sub


Private Sub webclient_DownloadDataCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs)

    MessageBox.Show("Your download has completed.")

End Sub

(編集-コメントで要求されたように非同期メソッドを表示するように変更されました)

ファイルが存在する場合は上書きされることに注意してください-> http://msdn.microsoft.com/en-us/library/ez801hhe (v=VS.80).aspx

于 2013-03-10T17:28:41.960 に答える