Когда я использую C # для выполнения встроенных команд Mac Os, таких как команда "ls", я обычно могу вернуть результат командной строки следующим образом:
string mediaInfo = "";
ProcessStartInfo start = new ProcessStartInfo("ls");
start.Arguments = "-i";
start.CreateNoWindow = false;
start.RedirectStandardOutput = true;
start.RedirectStandardInput = true;
start.UseShellExecute = false;
Process p=Process.Start(start);
StreamReader reader = p.StandardOutput;
string line = reader.ReadLine();
while (!reader.EndOfStream)
{
line = reader.ReadLine();
mediaInfo = line + mediaInfo;
}
p.WaitForExit();
p.Close();
reader.Close();
return mediaInfo;
Приведенный выше код может вернутьрезультат выполнения команды "ls", но когда я изменил команду "ls" на "ffmpeg", ничего не было возвращено.Код выглядит следующим образом: (я правильно установил ffmpeg и успешно выполнил его в командной строке)
string mediaInfo = "";
ProcessStartInfo start = new ProcessStartInfo("ffmpeg");
start.Arguments = "-i";
start.CreateNoWindow = false;
start.RedirectStandardOutput = true;
start.RedirectStandardInput = true;
start.UseShellExecute = false;
Process p=Process.Start(start);
StreamReader reader = p.StandardOutput;
string line = reader.ReadLine();
while (!reader.EndOfStream)
{
line = reader.ReadLine();
mediaInfo = line + mediaInfo;
}
p.WaitForExit();
p.Close();
reader.Close();
return mediaInfo;
Кто-нибудь знает, что это такое?Большое спасибо!