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