¿Es posible abrir un archivo directamente desde un MemoryStream
opuesto a escribir en un disco y hacer Process.Start()
? Específicamente un archivo pdf? Si no, supongo que necesito escribir el MemoryStream
en el disco (que es un poco molesto). ¿Podría alguien entonces dirigirme a un recurso sobre cómo escribir un MemoryStream
en el Disco?Cómo abrir un archivo desde Memory Stream
Respuesta
Depende del cliente :) si el cliente acepta la entrada de stdin puede empujar dta al cliente. Otra posibilidad podría ser escribir un servidor named-pipes o un socket-server, no trivial, pero podría funcionar.
Sin embargo, la opción más simple es simplemente tomar un archivo temporal y escribirlo (y eliminarlo después).
var file = Path.GetTempFileName();
using(var fileStream = File.OpenWrite(file))
{
var buffer = memStream.GetBuffer();
fileStream.Write(buffer, 0, (int)memStream.Length);
}
Recuerde que debe limpiar el archivo cuando haya terminado.
O use 'WriteTo' (para no 4.0) – Magnus
@Magnus - Lo eliminé; se dio cuenta de que puedo usar el back-buffer de MemoryStream –
Si abre un archivo, quiere decir algo así como iniciar Adobe Reader para archivos PDF, entonces sí, tiene que escribirlo en un archivo. Es decir, a menos que la aplicación le proporcione alguna API, haga eso.
Una manera de escribir una corriente a presentar sería:
using (var memoryStream = /* create the memory stream */)
using (var fileStream = File.OpenWrite(fileName))
{
memoryStream.WriteTo(fileStream);
}
Path.GetTempFileName() devuelve el nombre del archivo con la extensión '.tmp', por lo tanto, se utiliza cant't Process.Start() que necesita asociación de archivos de Windows a través de la extensión.
- 1. FMod Memory Stream Problema
- 2. Memory Stream como DB
- 3. Creación de archivos Zip desde Memory Stream C#
- 4. XML writer y Memory Stream C#
- 5. Escribiendo un archivo desde StreamReader stream
- 6. Cómo abrir un archivo externo desde HTML
- 7. abrir (archivo) desde cualquier lugar
- 8. ¿Cómo abrir un archivo vcproj desde Eclipse CDT?
- 9. Obteniendo un Stream desde una ruta absoluta?
- 10. ¿Cómo abrir un archivo "nul"?
- 11. Cómo abrir un archivo .a
- 12. Stream StringBuilder al archivo
- 13. Abrir un archivo PDF desde una aplicación WinJS
- 14. Abrir un archivo desde .netrw en una fracción especificada
- 15. ¿Cómo obtener el manejador de archivo subyacente de un Stream?
- 16. Incluir desde la secuencia "php: // memory"
- 17. Cómo abrir el archivo HTMLHelp (.chm) desde Borland C++ Application
- 18. Cómo abrir un archivo csv en Android
- 19. ¿Cómo abrir un archivo en la memoria?
- 20. ¿Cómo abrir un archivo .accdb en Ubuntu?
- 21. ¿Cómo abrir un archivo usando JavaScript?
- 22. Cómo abrir un archivo empaquetado con WinRT
- 23. ¿Subir archivo REST con HttpRequestMessage o Stream?
- 24. .NET - ¿Stream DataSet (de datos XML) a un archivo ZIP?
- 25. ¿Cómo puedo crear y abrir un archivo desde la terminal con un solo comando?
- 26. Abrir un archivo de Cygwin
- 27. Cómo abrir un PDF mediante Intent desde la tarjeta SD
- 28. Cómo abrir el archivo .hprof
- 29. ¿Obtienes un TextReader de un Stream?
- 30. VideoView Android Guardar RTSP stream
(James - Eliminé la dependencia 4.0 de mi respuesta) –