• C#调用Linux系统命令执行文件合并操作


    项目用docker部署在了Linux服务器中,大附件分片上传后需要进行文件合并,为提高合并速度,使用系统命令进行操作,代码如下:

          #region 执行Linux系统命令
                    try
                    {
                        //拼接合并命令中的文件字符串,sourcePath为文件块所在目录,targetPath为合并文件的目录
                        var fileStr = "";
                        for (var i = 0; i < files.Length; i++)
                        {
                            fileStr += fileStr.Length > 0 ? " " + sourcePath + i.ToString() : sourcePath + i.ToString();
                        }
    
                        //合并文件命令(cat /home/test/1.txt home/test/2.txt >home/test/all.txt)
                        string command = "cat " + fileStr + " >" + targetPath.Replace("\", "/");
                        //执行结果
                        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();
                        }
                    }
                    catch (Exception ex)
                    {
                        logger.Error("合并报错:" + ex.Message);
                    }
            #endregion
  • 相关阅读:
    Linux下环境变量配置错误 导致大部分命令不可以使用的解决办法
    问题1:kafka的message包括那些?
    zabbix4.4
    jdk1.8安装
    linux 环境python3安装
    Zabbix应用监控
    zabbix4.0.21部署
    AtCoder Beginner Contest 187
    Codeforces Round #690 (Div. 3)
    AtCoder Beginner Contest 185
  • 原文地址:https://www.cnblogs.com/Jackie-sky/p/14026499.html
Copyright © 2020-2023  润新知