У меня есть следующий код:
strCmdText = "/C cppcheck.exe --enable=all " + StrFile1 + " 2> " + StrfolderOut + "\\fileOut.txt";
//Console.WriteLine(strCmdText);
System.Diagnostics.Process.Start("CMD.exe", strCmdText);
, но когда я пытаюсь прочитать его потом, это похоже на то, что программа выполняет его после завершения выполнения
Я выполнил 2 теста:
Первый, который я использую в качестве ввода "file1.txt" (fileOut не существует), файл создается с помощью cmd, перенаправляющего вывод с использованием ">".При попытке прочитать, он говорит, что «файл не существует»
Во-вторых, я использую «file2.txt» в качестве входных данных (fileOut существует и имеет информацию о file2.txt), и он читает, носодержимое файла "file1.txt".
Так что я думаю, что команда cmd запускается после завершения выполнения.Я трижды проверил пути, так что это не проблема, так как я читаю путь с помощью папки с файлами gui.
Я использую этот код для чтения
public List<Error> LeerArchivo()
{
List<Error> listaErrores = new List<Error>();
string @folderLocation = StrfolderOut + "\\fileOut.txt";
Console.WriteLine(@folderLocation);
//OpenFileDialog openFileDialog = new OpenFileDialog();
//openFileDialog.ShowDialog();
if (File.Exists(@folderLocation))
{
try
{
// Create an instance of StreamReader to read from a file.
// The using statement also closes the StreamReader.
using (StreamReader sr = new StreamReader(@folderLocation))
{
string line = "";
// Read and display lines from the file until the end of
// the file is reached.
Console.WriteLine("reading");
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
}
Console.WriteLine(line);
}
}
catch (Exception e)
{
// Let the user know what went wrong.
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
}
else
{
Console.WriteLine("no existe");
}
return listaErrores;
}