Comment sauvegarder un Stream dans un fichier en C# ? Méthodes correctes et exemples
Bonjour à tous ! Je suis un développeur C# débutant et j'ai rencontré un problème : j'ai un objet de type `Stream` (par exemple, obtenu à partir d'une requête HTTP ou de la mémoire), et je dois sauvegarder tout son contenu dans un fichier sur le disque.
Au début, j'ai essayé la méthode la plus simple : lire le stream dans un tableau d'octets avec `Read()` puis écrire via `File.WriteAllBytes`. Voici mon code :
public void SaveStreamToFile(Stream inputStream, string filePath)
{
byte[] buffer = new byte[inputStream.Length];
inputStream.Read(buffer, 0, buffer.Length);
File.WriteAllBytes(filePath, buffer);
}
Mais ce code échoue avec une erreur si le stream ne supporte pas le positionnement (par exemple, un stream réseau). De plus, j'ai lu que pour les gros fichiers, il peut y avoir des problèmes de mémoire.
Pouvez-vous me dire, s'il vous plaît, comment sauvegarder correctement et efficacement un stream arbitraire (sans connaître sa longueur à l'avance) dans un fichier ? Quelles sont les best practices ? Faut-il fermer le stream après l'écriture ? Merci d'avance pour