Geschlossenen MemoryStream wieder öffnen

Danielku15

Erfahrenes Mitglied
Hallo Leute.
Bei meinem Problem handelt es sich dieses mal um MemoryStreams. Ich habe eine kleine Library welche mir ein spezielles Dateiformat in eine Midi Datei umwandelt (wahlweise in eine Datei oder in einen Stream). Da ich die Midi-Datei gleich weiter verarbeiten will lasse ich die Library die Datei in einen MemoryStream schreiben.

Nun zu meinem Problem: Diese Library schließt nach dem schreiben den Stream was mir ein späteres Lesen nicht ermöglicht. Gibt es eine Möglichkeit den MemoryStream für eine weitere Verarbeitung wieder zu öffnen?
Eine Datei wieder zu öffnen ist kein Problem da dort ein Dateiname verfügbar ist, jedoch gibt es beim MemoryStream keine Referenz auf welche man beim Öffnen verweisen kann. (Oder doch?)

Gruß Daniel
 
Das ist definitiv nicht möglich, tut mir leid :( .
Wenn du nämlich bei einem Stream "Close" aufrufst, wird der laut Reflector auch gleich "Disposed". Somit sind alle Daten weg.
 
Hallo,

wie ist denn die Anwendung der Library gedacht, wenn man in einen Memory-Stream schreibt? Nach deiner Beschreibung erscheint mir diese Option sonst irgendwie sinnlos ...

Gruß
MCoder
 
Die Library ist eher dafür gedacht eine Konvertierung in eine Datei vorzunehmen. Und da macht es natürlich Sinn den Stream wieder zu schließen.
Ich werde in diesem Fall einfach eine eigene Stream Klasse erben. Mit einem zusätzlichen Flag ob sich der Stream gerade schließen lässt ist mit dem ungewollten Close-Call abhilfe geschaffen.

Trotzdem Danke.

Gruß Daniel
 
Hi

Erzeug doch eine Kopie des Streams, die du in die Datei schreibst. Auf dem eigentlich Stream kannst du dann weiterarbeiten.
 

Neue Beiträge

Zurück