He estado jugando con lo que pensé que era una idea simple. Quiero poder leer en un archivo desde algún lugar (sitio web, sistema de archivos, ftp), realizar algunas operaciones en él (comprimir, encriptar, etc.) y luego guardarlo en algún lugar (en algún lugar puede ser un sistema de archivos, ftp o lo que sea) . Es un diseño básico de tubería. Lo que me gustaría hacer es leer en el archivo y ponerlo en un MemoryStream, luego realizar las operaciones en los datos en el MemoryStream, y luego guardar esos datos en el MemoryStream en algún lugar. Estaba pensando que podría utilizar el mismo flujo de hacer esto, pero correr en un par de problemas:Stream Reuse en C#
- Cada vez que utilice un StreamWriter o StreamReader que necesito para cerrarla y que cierra la corriente de modo que no puedo usarlo nunca más . Parece que debe haber alguna manera de evitar eso.
- Algunos de estos archivos pueden ser grandes y me quedo sin memoria si trato de leer todo al mismo tiempo.
Estaba esperando poder girar cada uno de los pasos como subprocesos separados y hacer que el paso de compresión comience tan pronto como haya datos en la transmisión, y tan pronto como la compresión tenga algunos datos comprimidos disponibles en la transmisión, podría comenzar a guardarlo (por ejemplo). ¿Hay algo como esto fácilmente posible con las transmisiones C#? ¿ALguien tiene pensamientos sobre cómo lograr esto mejor?
Gracias,
Mike
Desde .NET 4.0, puede utilizar el incorporado '.CopyTo' y'.CopyToAsync' para copiar una secuencia a otra –