c# - Macos上c#.net核心调用终端的奇怪问题
问题描述
当我使用 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;
有人知道这是怎么回事吗?非常感谢!
解决方案
推荐阅读
- sql - 我的 sql 查询有一个问题..就像我需要多行数据到一行
- html - 使用 RTL 和 LTR 语言和数字在 RTL div 中定位单词
- vb.net - Crystal Reports 在运行时打印时为空(无查看器)
- python - pybind11 - 如果访问了结构的任何成员,则 boost::optional 结构的 std::vector 成员将被清空
- ios - 以xamarin形式旋转设备时进入全屏(ios)
- javascript - 取消订阅后,仍然授予权限(PUSH NOTIFICATION WEB)
- mysql - 获取过去 30 天内每天的查询结果
- swift - UserDefaults(suiteName:) 不在应用程序和扩展程序之间传播
- node.js - MongooseServerSelectionError:连接 ECONNREFUSED
- c# - 创建新标签并管理它们 - Selenium