Wie erstelle ich ein Byte-Array aus einem Stream in C#? Vollständige Anleitung
Hallo zusammen! Ich bin neu in C# und arbeite an einer Anwendung, die Dateien aus dem Internet herunterlädt. Ich muss alle Daten aus einem NetworkStream oder FileStream in ein byte[]-Array einlesen. Das Problem ist, dass ich die Größe des Streams im Voraus nicht kenne. Ich habe versucht, die Length-Eigenschaft zu verwenden, aber für viele Streams löst sie eine NotSupportedException aus.\n\nHier ist mein aktueller Code, der nicht funktioniert:\n\n
// Versuche, den Stream in ein Byte-Array zu lesen\nbyte[] buffer = new byte[stream.Length]; // Fehler: 'Stream' does not support seeking\nstream.Read(buffer, 0, buffer.Length);\n\n\nDieser Fehler tritt auf, wenn ich mit Netzwerk-Streams (NetworkStream) oder Streams aus HTTP-Antworten arbeite. Ich verstehe, dass ich die Daten in Teilen lesen muss, weiß aber nicht, wie ich die Schleife richtig organisiere. Ich habe etwas über MemoryStream gesehen, bin mir aber nicht sicher, wie ich es verwenden soll.\n\nKönnt ihr mir bitte erklären, wie ich einen Stream korrekt und effizient in ein Byte-Array konvertiere? Am liebsten mit einem Codebeispiel für .NET 3.5 (ich habe ein Legacy-Projekt).