Я пытаюсь запустить exe-файл с помощью процесса в консольном приложении c # и построчно получать выводимый текст в файл TXT.Предполагается, что он рекурсивно работает со всеми файлами подпапок.
Это прекрасно работает, когда я запускаю папки с меньшим количеством файлов.Но когда он запускается в папках верхнего уровня с огромным списком файлов или на уровне накопителя (например, D: \ или E: \), это не дает полного вывода и останавливается между словами о его завершении.То же самое происходит и с консольным выводом.
Пытался включить Standarderror и выводить его, но не смог получить никаких ошибок.Пожалуйста, предложите, почему это будет завершено с частичными данными и не будет проходить через весь список?
Process sigCheckProcess = new Process();
sigCheckProcess.StartInfo.FileName = sigcheckdir + "\\sigcheck64.exe";
sigCheckProcess.StartInfo.Arguments = "-a -h -i -l -s " + dir;
sigCheckProcess.StartInfo.RedirectStandardOutput = true;
sigCheckProcess.StartInfo.UseShellExecute = false;
sigCheckProcess.StartInfo.CreateNoWindow = true;
sigCheckProcess.Start();
using (StreamWriter streamWriter = File.CreateText(@"D:\Sigcheckoutput.txt"))
{
using (StreamReader streamReader = sigCheckProcess.StandardOutput)
{
while (!streamReader.EndOfStream)
{
var content = sigCheckProcess.StandardOutput.ReadLine();
streamWriter.WriteLine(content);
}
}
}
sigCheckProcess.WaitForExit();