Avatar ·

Comment créer un tableau de bytes (byte[]) à partir d'un flux (Stream) en C#?

Bonjour à tous ! Je suis un développeur C# débutant et j'ai rencontré un problème. Je dois lire toutes les données d'un flux (Stream) dans un tableau de bytes (byte[]). Le flux peut provenir de différentes sources : fichier, requête réseau, MemoryStream, etc. Voici un exemple de code que j'essaie d'écrire : ```csharp public byte[] ReadStream(Stream stream) { // Je sais que Stream a une propriété Length, mais elle n'est pas toujours disponible. // Comment lire correctement tous les bytes ? byte[] buffer = new byte[stream.Length]; // Erreur "Stream does not support seeking" stream.Read(buffer, 0, (int)stream.Length); return buffer; } ``` Le problème est que `stream.Length` peut lever une exception `NotSupportedException` si le flux ne supporte pas la recherche (seeking). Par exemple, avec `NetworkStream` ou `GZipStream`, la propriété Length n'est pas disponible. De plus, même si Length est disponible, je ne suis pas sûr que `Read()` lise toutes les données en un seul appel. La méthode `Read()` peut retourner moins de bytes que demandé. Je cherche