Leer Stream de un Proceso

03/11/2008 - 20:49 por Yuste | Informe spam
Buenas noches. Me urge saber como puedo hacer para leer la salida de un
proceso de un comando de consola, pero no me vale el método ReadToEnd().
Necesito algo para poder ir leyendo de la salida conforme esta va cambiando.

EJ.

Process p=new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.Filename="dir";
p.StartInfo.Arguments="c: /s";
p.Start();

pues eso ahora vendría el... string res = p.StandardOutput.ReadToEnd();

y eso me devolvería todo de una vez y yo no quiero eso yo quiero que por
cada línea del dir me lo muestre uno por uno para por ejemplo ir
añadiendo cada línea una a una conforme se va produciendo la salida por
ejemplo en un ListBox.

El dir creo que no se puede usar como para ejecutarlo en un proceso,
pero bueno para el caso vale.

Gracias y hasta otra.

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
03/11/2008 - 22:22 | Informe spam
"Yuste" wrote in message
news:%
Buenas noches. Me urge saber como puedo hacer para leer la salida de un
proceso de un comando de consola, pero no me vale el método ReadToEnd().
Necesito algo para poder ir leyendo de la salida conforme esta va
cambiando.

EJ.

Process p=new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.Filename="dir";
p.StartInfo.Arguments="c: /s";
p.Start();

pues eso ahora vendría el... string res = p.StandardOutput.ReadToEnd();

y eso me devolvería todo de una vez y yo no quiero eso yo quiero que por
cada línea del dir me lo muestre uno por uno para por ejemplo ir añadiendo
cada línea una a una conforme se va produciendo la salida por ejemplo en
un ListBox.




El StandardOutput es un StreamReader, por lo que le puedes aplicar
cualquiera de las funciones de esta clase, no solo el ReadToEnd. En tu caso,
si lo que quieres es leer linea por linea, puedes usar
p.StandardOutput.ReadLine(), que te devolverá la siguiente línea, o null
cuando se acaben las líneas.


El dir creo que no se puede usar como para ejecutarlo en un proceso, pero
bueno para el caso vale.



Puedes ejecutarlo por medio de "CMD.EXE /C DIR", (o poniendo
p.Startinfo.UseShellExecute=true pero en este caso no te deja redireccionar
el StandardOutput).
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida