asp.net 网站使用命令合并mp3录音文件

下面代码实现了获取网站中MP3静态资源并将其合并成一个文件
private readonly ILogger<HomeController> _logger;
//获取静态文件路径
private readonly IWebHostEnvironment _env;

public HomeController(ILogger<HomeController> logger, IWebHostEnvironment env)
{
  _logger = logger;
  //初始化
  _env = env;
}

/// <summary>
/// 文件合并
/// </summary>
/// <returns></returns>
[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();
    }

    //合并文件命令(cat /home/test/1.txt home/test/2.txt >home/test/all.txt)
    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}" });
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FlYFlOWERANDLEAF

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值