Hallo Zusammen,
vorab, als Ausgangspunkt verwende ich aktuell folgendes Snippet:
Spoiler anzeigen
von RodFromGermany aus diesem Thread, [VB 2010] Multi-Download nur im Doppelpack.
Ist es bei dem
Sprich, wenn wir eine Datei downloaden, den Download abbrechen und das Programm neu starten, die aktuelle Dateilänge der vorhandenen Datei ermitteln, sowie dann von dieser Dateilänge aus, den Download fortzusetzen? (Bezogen auf eine einzelne Datei, nicht mehrere)
Gruß, FireEmerald
ps.: wenn möglich nach Internet- und Netzwerkprogrammierung verschieben... wollte das Thema eigentlich dort erstellen.
vorab, als Ausgangspunkt verwende ich aktuell folgendes Snippet:
VB.NET-Quellcode
- Imports System.Net
- Imports System.Data
- Imports System.Threading
- Public Class MyDownload
- Public Event DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs)
- Public Event DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs)
- Private WithEvents _Downloader As WebClient
- Private _Thread As Thread ' Download-Thread
- Public ReadOnly _Index As Integer ' Index für Multi-Download
- Private _FileName As String ' Save As ...
- Private _Uri As Uri ' Source
- Public Sub New(index As Integer)
- _Downloader = New WebClient
- _Index = index
- _Thread = Nothing
- End Sub
- Public Sub DownloadFileAsync(ByVal url As Uri, ByVal FileName As String)
- _FileName = FileName
- _Uri = url
- ' jedes Mal ein neuer Thread
- If _Thread Is Nothing OrElse Not _Thread.IsAlive Then
- _Thread = New Thread(AddressOf StartThread)
- End If
- _Thread.Start()
- End Sub
- Private Sub StartThread()
- _Downloader.DownloadFileAsync(Me._Uri, Me._FileName)
- End Sub
- Public Sub CancelAsync()
- _Downloader.CancelAsync()
- End Sub
- Private Sub downloader_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles _Downloader.DownloadProgressChanged
- RaiseEvent DownloadProgressChanged(Me, e)
- End Sub
- Private Sub downloader_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles _Downloader.DownloadFileCompleted
- Dim fi As New System.IO.FileInfo(_FileName)
- If (fi.Length = 0) Then
- fi.Delete()
- End If
- RaiseEvent DownloadFileCompleted(Me, e)
- End Sub
- End Class
von RodFromGermany aus diesem Thread, [VB 2010] Multi-Download nur im Doppelpack.
Ist es bei dem
_Downloader As WebClient
auch möglich eine Art "Startpoint" festzulegen?Sprich, wenn wir eine Datei downloaden, den Download abbrechen und das Programm neu starten, die aktuelle Dateilänge der vorhandenen Datei ermitteln, sowie dann von dieser Dateilänge aus, den Download fortzusetzen? (Bezogen auf eine einzelne Datei, nicht mehrere)
Gruß, FireEmerald
ps.: wenn möglich nach Internet- und Netzwerkprogrammierung verschieben... wollte das Thema eigentlich dort erstellen.