Hallo,
ich hab ein kleines Problem mit System.IO.FileStream.
Die Prozedur nimmt einen Radiostream auf Festplatte auf. Bei der ersten Aufnahme klappt alles, aber wenn ich erneut einen Sender aufnehmen will, kommt der Fehler:
System.ObjectDisposedException: Auf eine geschlossene Datei kann nicht zugegriffen werden.
Der Code sieht so aus:
Also hab ich unten das hier auskommentierte
Nur dann kommt es schon ebim ersten Mal aufnehmen zum Fehler in Zeile 10:
System.IO.IOException: Der Prozess kann nicht auf die Datei "C:\Aufgenommene Radiostreams\DasDing - 20.04.2021 14.57.47.mp3" zugreifen, da sie von einem anderen Prozess verwendet wird.
Kann mir jemand sagen was ich da falsch mache?
ich hab ein kleines Problem mit System.IO.FileStream.
Die Prozedur nimmt einen Radiostream auf Festplatte auf. Bei der ersten Aufnahme klappt alles, aber wenn ich erneut einen Sender aufnehmen will, kommt der Fehler:
System.ObjectDisposedException: Auf eine geschlossene Datei kann nicht zugegriffen werden.
Der Code sieht so aus:
VB.NET-Quellcode
- Public fs As System.IO.FileStream = Nothing
- Private Sub MeinDownload(ByVal buffer As IntPtr, ByVal length As Integer, ByVal user As IntPtr)
- If fs Is Nothing Then
- ' Datei erzeugen
- Datum = CStr(DateTime.Now)
- Titelname = Datum
- Datum = Replace(Datum, ":", ".")
- If System.IO.Directory.Exists(MP3Pfad & "\Aufgenommene Radiostreams") = False Then
- System.IO.Directory.CreateDirectory(MP3Pfad & "\Aufgenommene Radiostreams")
- End If
- fs = File.OpenWrite(MP3Pfad & "\Aufgenommene Radiostreams\" & SenderRecorded & " - " & Datum & ".mp3") 'Pfad der Musikdatenbank noch speichern in database-------------------
- End If
- If buffer = IntPtr.Zero Then
- ' Download fertig
- fs.Flush()
- fs.Close()
- Else
- ' Größe des Buffers anpassen
- If Streamdaten Is Nothing OrElse Streamdaten.Length < length Then
- Streamdaten = New Byte(length) {}
- End If
- ' Speicher in Buffer kopieren
- System.Runtime.InteropServices.Marshal.Copy(buffer, Streamdaten, 0, length)
- ' In Datei schreiben
- fs.Write(Streamdaten, 0, length)
- End If
- 'fs = Nothing
- End Sub
Also hab ich unten das hier auskommentierte
fs = Nothing
eingefügt.Nur dann kommt es schon ebim ersten Mal aufnehmen zum Fehler in Zeile 10:
System.IO.IOException: Der Prozess kann nicht auf die Datei "C:\Aufgenommene Radiostreams\DasDing - 20.04.2021 14.57.47.mp3" zugreifen, da sie von einem anderen Prozess verwendet wird.
Kann mir jemand sagen was ich da falsch mache?