下面代码实现了获取网站中MP3静态资源并将其合并成一个文件
private readonly ILogger<HomeController> _logger;
private readonly IWebHostEnvironment _env;
public HomeController(ILogger<HomeController> logger, IWebHostEnvironment env)
{
_logger = logger;
_env = env;
}
[HttpPost]
public IActionResult MerageFile()
{
try
{
string bFolder = $"{_env.WebRootPath}//source";
DirectoryInfo dir = new DirectoryInfo(bFolder);
FileInfo[] bFiles = dir.GetFiles();
var fileStr = "";
for (var i = 0; i < bFiles.Length; i++)
{
fileStr += fileStr.Length > 0 ? " " + bFiles[i].ToString() : bFiles[i].ToString();
}
string command = "cat " + fileStr + " >" + bFolder + "//result.mp3";
string result = "";
using (System.Diagnostics.Process proc = new System.Diagnostics.Process())
{
proc.StartInfo.FileName = "/bin/bash";
proc.StartInfo.Arguments = "-c \" " + command + " \"";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.Start();
result += proc.StandardOutput.ReadToEnd();
result += proc.StandardError.ReadToEnd();
proc.WaitForExit();
}
return new JsonResult(new { Code = 0,Msg = $"合并完成",Path = $"/source/result.mp3" });
}
catch (Exception e) {
return new JsonResult(new { Code = -1,Msg = $"合并失败:{e.Message}" });
}
}