В вашем примере вывод fls.exe
должен отображаться в ntfs.bodyfile
, поскольку вы перенаправляете вывод fls.exe
в этот файл.
Поскольку вы перенаправляете вывод fls.exe
в этот файл, sRes
должен оставаться пустым.
Есть несколько вопросов. Во-первых, вы не ждете завершения процесса. Если вышеуказанная программа является вашей полной программой, это не должно быть проблемой. Однако, если вы собираетесь прочитать вывод ntfs.bodyfile
, вам следует дождаться завершения процесса. Попробуйте следующее:
using (Process process = new Process())
{
process.StartInfo.FileName = "C:\\temp\\bin\\fls.exe";
process.StartInfo.Arguments = "-m C: -r C:\\temp\\image.dd > C:\\temp\\bin\\ntfs.bodyfile";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardError = true;
process.Start();
using (System.IO.StreamReader reader = process.StandardOutput)
{
string sRes = reader.ReadToEnd();
Console.WriteLine(sRes);
reader.Close();
process.WaitForExit();
}
}
Это обеспечит очистку Process
, дождитесь завершения fls.exe
и правильно закройте StreamReader
.
Теперь о выходе. Есть два варианта. Если вы хотите, чтобы вывод отображался в ntfs.bodyfile
, вы должны быть настроены. Однако, если вы хотите, чтобы вывод отображался в sRes
, вы должны удалить > C:\\temp\\bin\\ntfs.bodyfile
из аргументов.