Stream download unterbrechen und wieder starten

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Confix.npage.de.

    Stream download unterbrechen und wieder starten

    Guten Tag
    Ich habe folgenden Code und möchte damit einen Dowlnoad unterbrechen und wieder starten:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim Position As String
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. End Sub
    5. Public Sub dwlByLink(ByVal myLink As String, ByVal myFile As String)
    6. Try
    7. Dim myRequest As System.Net.WebRequest = System.Net.WebRequest.Create(myLink) 'Request erstellen
    8. Dim myResponse As System.Net.WebResponse = myRequest.GetResponse() 'Respons speichern
    9. Dim myStream As System.IO.Stream = myResponse.GetResponseStream() 'Datenstream aus dem Respons extrahieren
    10. Dim myReader As New System.IO.BinaryReader(myStream) 'Binärer "leser" zum Lesen des Streams
    11. 'Datei speichern
    12. Dim myFileStream As New System.IO.FileStream(myFile, System.IO.FileMode.Create) 'Datei auswählen
    13. Timer1.Start()
    14. Dim i As Long
    15. For i = 1 To myResponse.ContentLength 'Byte für Byte in die Datei übertragen
    16. myFileStream.WriteByte(myReader.ReadByte())
    17. Position = myFileStream.Position
    18. Next i
    19. myFileStream.Flush() 'noch mal spülen ...
    20. myFileStream.Close() ' und schließen
    21. Catch exc As Exception
    22. 'Fehlerbehandlung, MSG-Box, ect ...
    23. End Try
    24. End Sub
    25. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    26. TextBox1.Text = Position
    27. End Sub
    28. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    29. Dim Svd As New SaveFileDialog
    30. Svd.ShowDialog()
    31. If DialogResult.OK Then
    32. TextBox3.Text = Svd.FileName
    33. End If
    34. dwlByLink(TextBox2.Text, TextBox3.Text)
    35. End Sub
    36. End Class

    Aber es geht nicht (er macht einfach nichts)
    Freue mich immer über hilfe
    Mfg
    confix
    das würde mich auch mal interessieren wie die funktion genauer geht ^^
    ich versteh das ganze iwie nicht soganz ..
    aber mal ne frage nebenbei ..
    ist es möglich wenn man zb. die Quelldatei (link) ändert und dann die datei weiterschreiben lässt mit der neuen Quelle ?
    Imperiums - Fortschritt in ein neues Zeitalter (Remake 2021)
    Würd mich auch interessieren. Weil ich habe aus langeweile eine DownloadLib geschrieben, die aber keine abgebrochenen Downloads wieder aufnehmen kann. ich hab das dann mal erweitert und jetzt bricht er immer ab, wenn ich den Download wieder aufnehme.
    So jetzt hol ich das Thema wieder mal hoch
    Mein neuer Code (selbstgeschrieben) evt. nicht richtig:

    VB.NET-Quellcode

    1. Imports System.Net
    2. Imports System.IO
    3. Public Class Form1
    4. Dim ofd As New OpenFileDialog
    5. Dim reader As StreamReader = New StreamReader(httpResponse.GetResponseStream)
    6. Dim httpContent As String = reader.BaseStream.ReadByte()
    7. Dim httpResponse As HttpWebResponse = httpRequest.GetResponse()
    8. Private Function httpRequest()
    9. Dim req As HttpWebRequest = HttpWebRequest.Create("http://dl.cdn.chip.de/downloads/33749/avira_antivir_personal_de.exe?1263125004-1263132504-c18201-B-d9b7da45db3c60b547d3fdf9dc7b0e79.exe")
    10. Return DirectCast(Me.httpRequest, HttpRequestHeader)
    11. End Function
    12. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    13. Button1.Text = reader.BaseStream.Position
    14. If reader.BaseStream.Position = reader.BaseStream.Length Then
    15. ofd.ShowDialog()
    16. IO.File.WriteAllText(ofd.FileName, httpContent)
    17. Timer1.Enabled = False
    18. Exit Sub
    19. End If
    20. End Sub
    21. End Class

    Fehler:
    System.InvalidOperationException wurde nicht behandelt.
    Message="Fehler beim Erstellen des Formulars. Weitere Informationen finden Sie in Exception.InnerException. Fehler: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.."
    Source="Downloaderpro"
    StackTrace:
    bei Downloaderpro.My.MyProject.MyForms.Create__Instance__[T](T Instance) in 17d14f5c-a337-4978-8281-53493378c1071.vb:Zeile 190.
    bei Downloaderpro.My.MyProject.MyForms.get_Form1()
    bei Downloaderpro.My.MyApplication.OnCreateMainForm() in C:\Users\Mike\AppData\Local\Temporary Projects\Downloaderpro\My Project\Application.Designer.vb:Zeile 35.
    bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
    bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
    bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
    bei Downloaderpro.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:Zeile 81.
    bei System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
    bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
    bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
    bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
    bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
    bei System.Threading.ThreadHelper.ThreadStart()
    InnerException: System.NullReferenceException
    Message="Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."
    Source="Downloaderpro"
    StackTrace:
    bei Downloaderpro.Form1..ctor() in C:\Users\Mike\AppData\Local\Temporary Projects\Downloaderpro\Form1.vb:Zeile 5.
    InnerException:

    Weiß das eigentlich hier einer im forum ;(