Laden...

FileStream.Read bei instabilem Netzwerk [Gelöst]

Erstellt von SlyFox vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.054 Views
S
SlyFox Themenstarter:in
231 Beiträge seit 2007
vor 9 Jahren
FileStream.Read bei instabilem Netzwerk [Gelöst]

Hallo,

ich versuche eine ca. 13 GB große Datei mittels FileStream.Read über eine instablile und sehr langsame (1 Mbit) WAN-Verbindung zu kopieren.

Nach einiger Zeit (kann nach Minuten oder auch Stunden sein) bekomme ich die Exception, dass diese Netzwerkverbindung nicht mehr existieren würde.

Starte ich das Programm anschließend neu, funktioniert die Verbindung wieder.

Wie kann ich vermeiden, dass das Programm abbricht, wenn die Verbindung verloren geht? Einen Timeout kann ich leider nicht einstellen.

Vielen Dank für eure Hilfe

Christoph

T
2.219 Beiträge seit 2008
vor 9 Jahren

Theoretisch sollte es reichen bei einem Verbindungsabbruch per Seek die letzte Position im Stream zu setzen.
Dann kannst du nach einem Abbruch direkt an der letzten Stelle wieder weitermachen.
Dann kann es auch egal sein ob die Verbindung kurz weg war oder nicht.
Du musst nur diesen Fall per Try/Catch abfangen und dann erneut Read aufrufen nach dem du per Seek die Position gesetzt hast.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

S
SlyFox Themenstarter:in
231 Beiträge seit 2007
vor 9 Jahren

Hallo T-Virus,

ich habe noch nie mit Seek gearbeitet.

Das bedeutet, ich benutze nach dem Öffnen der zu lesenden und der zu schreibenden Datei jeweils Seek und mache dann weiter wie zuvor?

Viele Grüße

Christoph

16.807 Beiträge seit 2008
vor 9 Jahren

Legt die aktuelle Position dieses Streams auf den angegebenen Wert fest.

Wie in der Doku steht setzt es die Position ab der weiter gelesen respektive geschrieben wird.

S
SlyFox Themenstarter:in
231 Beiträge seit 2007
vor 9 Jahren

Hallo,

ich habe einen kleinen Denkfehler begangen.

Ich muss ja nur das Lesen wieder neu starten. Es betrifft das Schreiben nicht, weil lokal geschrieben wird. Lediglich die Quelldatei liegt im WAN.

Danke für die Hilfe

Christoph