c#启动控制台程序(lame)并执行它

时间:2016-06-10 11:12:29

标签: c#

我写了一个c#程序。现在,我想将.avi个文件中的.mp3文件转换为lame。我已经安装了命令行应用程序。手动它工作正常。现在我想自动化这个过程:

C#Application =>启动控制台并使用参数运行“lame.exe”。

我想转换多个文件。我怎么能这样做?

由于

4 个答案:

答案 0 :(得分:2)

我不知道lame是如何工作的,但是你不能得到你想要转换的所有文件的列表,用foreach循环遍历列表并为每个文件运行“lame.exe”?

答案 1 :(得分:0)

如果你可以使用CMD手动调用Lame,你应该可以这样做:

public void ConvertFileWithLame(string pathToLame, string fileToConvert){
     // Use ProcessStartInfo class.
     ProcessStartInfo startInfo = new ProcessStartInfo(pathToLame, fileToConvert);

     try{
          // Start the process with the info we specified.
          // Call WaitForExit and then the using-statement will close.
          using (Process exeProcess = Process.Start(startInfo)){
               exeProcess.WaitForExit();
          }
     }
     catch{
          // Log error.
     }
}

P.D:请记住,您的命令必须在您的PATH中,或者指示" /path/commandName.exe"

上的路径

答案 2 :(得分:-1)

你可以尝试做的是看看lame.exe是否接受多个文件名参数,所以不要迭代文件名,你可以像下面一样添加它们

Process.Start("lame.exe", "file1 file2 file3 etc");

答案 3 :(得分:-1)

你要做的就是为Directory.GetFiles实现一个foreach循环,然后在foreach循环中使用Process.Start来运行你的命令。请参阅下面的示例代码:

foreach(var t in Directory.GetFiles("path"))
{
  System.Diagnostics.Process.Start("cmd.exe", $"lame command here with interpolated values (t will point to full path of file)");
}