Benutzer mit den meisten Antworten
Download Abbrechen

Frage
-
Hallo,
Ich bekomme es einfach nicht hin den Download Abzubrechen. Kann mir da jemand helfen ??
Private Sub StartRBdown() Try Dim client As WebClient = New WebClient AddHandler client.DownloadProgressChanged, AddressOf client_ProgressChanged Dim speicherpfad1 As String = My.Computer.FileSystem.SpecialDirectories.Temp AddHandler client.DownloadFileCompleted, AddressOf client_DownloadCompleted Dim speicherpfad2 As String = My.Settings.rbdownname Dim speicherpfad3 As New TextBox If My.Computer.FileSystem.DirectoryExists(speicherpfad1 & "\MinecraftServerConfigurator\") = False Then My.Computer.FileSystem.CreateDirectory(speicherpfad1 & "\MinecraftServerConfigurator\") speicherpfad3.Text = speicherpfad1 & "\MinecraftServerConfigurator\" & speicherpfad2 If My.Computer.FileSystem.FileExists(speicherpfad3.Text) = True Then Dim löschfrage1 As MsgBoxResult = MsgBox("Es sieht so aus, als währe die Datei schon vorhanden. Möchten Sie die Datei überschreiben ?", MsgBoxStyle.YesNo, "Doppelte Datei") If (löschfrage1 = MsgBoxResult.Yes) Then My.Computer.FileSystem.DeleteFile(speicherpfad3.Text, FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.DeletePermanently) client.DownloadFileAsync(New Uri(My.Settings.rb), speicherpfad3.Text) Label15.Text = "Download in Progress" My.Settings.downloadclose = "no" My.Settings.Save() Label15.Enabled = False ElseIf (löschfrage1 = MsgBoxResult.No) Then MsgBox("Download durch den Benutzer abgebrochen", MsgBoxStyle.Information, "Ende") Close() End If Else client.DownloadFileAsync(New Uri(My.Settings.rb), speicherpfad3.Text) Label15.Text = "Download in Progress" My.Settings.downloadclose = "no" My.Settings.Save() Label15.Enabled = False End If Else speicherpfad3.Text = speicherpfad1 & "\MinecraftServerConfigurator\" & speicherpfad2 If My.Computer.FileSystem.FileExists(speicherpfad3.Text) = True Then Dim löschfrage1 As MsgBoxResult = MsgBox("Es sieht so aus, als währe die Datei schon vorhanden. Möchten Sie die Datei überschreiben ?", MsgBoxStyle.YesNo, "Doppelte Datei") If (löschfrage1 = MsgBoxResult.Yes) Then My.Computer.FileSystem.DeleteFile(speicherpfad3.Text, FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.DeletePermanently) client.DownloadFileAsync(New Uri(My.Settings.rb), speicherpfad3.Text) Label15.Text = "Download in Progress" My.Settings.downloadclose = "no" My.Settings.Save() Label15.Enabled = False ElseIf (löschfrage1 = MsgBoxResult.No) Then MsgBox("Download durch den Benutzer abgebrochen", MsgBoxStyle.Information, "Ende") Close() End If Else client.DownloadFileAsync(New Uri(My.Settings.rb), speicherpfad3.Text) Label15.Text = "Download in Progress" My.Settings.downloadclose = "no" My.Settings.Save() Label15.Enabled = False End If End If Catch ex As Exception MsgBox(Err.Description) End Try
Antworten
-
Hi,
um den Download abzubrechen, musst du <WebClient>.CancelAsync() aufrufen. Beachte aber auch die Hinweise im MSDN Artikel:
http://msdn.microsoft.com/de-de/library/system.net.webclient.cancelasync.aspx
Ein Beispiel (auch in C#^^) findest Du hier:
http://stackoverflow.com/questions/10332506/aborting-a-webclient-downloadfileasync-operation
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Bearbeitet Stefan FalzModerator Samstag, 14. September 2013 16:01
- Als Antwort vorgeschlagen Stefan FalzModerator Mittwoch, 18. September 2013 17:57
- Als Antwort markiert Ionut DumaModerator Donnerstag, 19. September 2013 18:26
-
Hallo,
ich habe es mal schnell in einer VB.NET-Konsole getestet und hatte keine Probleme beim abbrechen eines Downloads:Sub Main()
Bevor man die Datei löschen kann, muss der Download aber wirklich abgebrochen sein. Das regel ich mit der While-Schleife. Die Thread.Sleep-Methode darin sorgt dafür, das die Schleife nicht sinnlose 1000mal ausgeführt wird wo auch 10ma reichen würden.
Using wc As New WebClient()
wc.DownloadFileAsync(New Uri("http://download.microsoft.com/download/7/D/E/7DE05DF5-57AF-4B20-B74F-A5819F34D971/VJS.iso"), "C:\test\vjs.iso")
Thread.Sleep(5000) '5s
wc.CancelAsync()
'Warten bis Download abgebrochen ist
While wc.IsBusy : Thread.Sleep(50) : End While
End Using
File.Delete("C:\test\vjs.iso")
End Sub<Code-13/>- Koopakiller [kuːpakɪllɐ] (Tom Lambert)
Webseite | Code Beispiele | Facebook | Twitter | Snippets C# ↔ VB.NET Konverter
Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.- Als Antwort vorgeschlagen Stefan FalzModerator Mittwoch, 18. September 2013 17:57
- Als Antwort markiert Ionut DumaModerator Donnerstag, 19. September 2013 18:26
Alle Antworten
-
Hi,
um den Download abzubrechen, musst du <WebClient>.CancelAsync() aufrufen. Beachte aber auch die Hinweise im MSDN Artikel:
http://msdn.microsoft.com/de-de/library/system.net.webclient.cancelasync.aspx
Ein Beispiel (auch in C#^^) findest Du hier:
http://stackoverflow.com/questions/10332506/aborting-a-webclient-downloadfileasync-operation
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Bearbeitet Stefan FalzModerator Samstag, 14. September 2013 16:01
- Als Antwort vorgeschlagen Stefan FalzModerator Mittwoch, 18. September 2013 17:57
- Als Antwort markiert Ionut DumaModerator Donnerstag, 19. September 2013 18:26
-
Der sagt mir immer das diese Datei gerade benutzt wird und nicht gelöscht werden kann.
Die Datei wird aber nur Heruntergeladen dass heißt der Download schritt macht den Fehler und ich kann nicht abbrechen aber wie bekomme ich den jetzt aus habe es mit Cancel Async versucht geht aber net
-
Hallo,
ich habe es mal schnell in einer VB.NET-Konsole getestet und hatte keine Probleme beim abbrechen eines Downloads:Sub Main()
Bevor man die Datei löschen kann, muss der Download aber wirklich abgebrochen sein. Das regel ich mit der While-Schleife. Die Thread.Sleep-Methode darin sorgt dafür, das die Schleife nicht sinnlose 1000mal ausgeführt wird wo auch 10ma reichen würden.
Using wc As New WebClient()
wc.DownloadFileAsync(New Uri("http://download.microsoft.com/download/7/D/E/7DE05DF5-57AF-4B20-B74F-A5819F34D971/VJS.iso"), "C:\test\vjs.iso")
Thread.Sleep(5000) '5s
wc.CancelAsync()
'Warten bis Download abgebrochen ist
While wc.IsBusy : Thread.Sleep(50) : End While
End Using
File.Delete("C:\test\vjs.iso")
End Sub<Code-13/>- Koopakiller [kuːpakɪllɐ] (Tom Lambert)
Webseite | Code Beispiele | Facebook | Twitter | Snippets C# ↔ VB.NET Konverter
Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.- Als Antwort vorgeschlagen Stefan FalzModerator Mittwoch, 18. September 2013 17:57
- Als Antwort markiert Ionut DumaModerator Donnerstag, 19. September 2013 18:26
-
Hi,
mal ganz im Ernst: Auch wenn wir dir hier sicher gerne weiterhelfen, ein wenig selbst was tun musst Du schon.
Da Du ja noch relativ am Anfang deiner Programmiererkarriere bist, dürften die 20 Minuten zwischen meinem und deinem Posting nicht mal ansatzweise reichen, um die Änderungen in deinen Code einzubauen, zu schauen, dass der Code an sich korrekt läuft, Breakpoints zu setzen und zu prüfen, wo nun wann welcher Fehler auftritt, ggfs. noch Korrekturen vornehmen, usw. Für mich sieht das eher nach "Code an irgendeiner Stelle reingeschmissen, läuft nicht, nochmal im Forum posten" aus. Das wäre allerdings sehr schade, da sich die Antwortenden hier sehr viel Mühe geben, dir zu helfen. Die einzige Gegenleistung, die wir "erwarten" (bzw. zumindest ich für meinen Teil) ist, dass Du dich auch mit dem, was man dir schreibt, beschäftigst und versuchst, es wirklich zu verstehen.
Es wäre daher für alle Beteiligten sehr hilfreich, wenn Du nach einem Hinweis erstmal versuchst, das selbst einzubauen und zu testen. Du musst dich ja auch Stück für Stück weiterbilden, sonst bringt das hier alles nichts.
Wenn es dann trotzdem nicht klappt, poste bitte - wie schon x-mal geschrieben - die genaue und vollständige Fehlermeldung und dazu den Code, der den Fehler auslöst.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Hallo Tobpy,
Ich gehe davon aus, dass die Antwort Dir weitergeholfen hat.
Wenn nicht, neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.Danke und viele Grüße,
IonutIonut Duma, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip„Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.