Saltar al contenido

¿Copiar MemoryStream a FileStream y guardar el archivo?

Hacemos una verificación completa cada sección en nuestro espacio con el objetivo de mostrarte siempre información veraz y actualizada.

Solución:

Debe restablecer la posición de la secuencia antes de copiar.

outStream.Position = 0;
outStream.CopyTo(fileStream);

Usaste el outStream al guardar el archivo usando el imageFactory. Esa función llenó el outStream. Mientras poblaba el outStream la posición se establece al final del área poblada. Eso es para que cuando siga escribiendo bytes en Steam, no anule los bytes existentes. Pero luego, para leerlo (para fines de copia), debe establecer la posición al principio para que pueda comenzar a leer desde el principio.

Si su objetivo es simplemente volcar el flujo de memoria en un archivo físico (por ejemplo, para ver el contenido), puede hacerlo en un solo movimiento:

System.IO.File.WriteAllBytes(@"C:\filename", memoryStream.ToArray());

Tampoco es necesario establecer primero la posición de la transmisión, ya que la operación .ToArray() la ignora explícitamente, según el comentario de @BaconBits a continuación https://docs.microsoft.com/en-us/dotnet/api/system.io.memorystream .toarray?view=netframework-4.7.2.

Otra alternativa a CopyTo es WriteTo.

Ventaja:

No es necesario restablecer la posición.

Uso:

outStream.WriteTo(fileStream);                

Función descriptiva:

Escribe todo el contenido de este flujo de memoria en otro flujo.

Comentarios y puntuaciones del post

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *