• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    .NET调用控制台下生成的exe文件,传参及获取返回参数的思路及代码

    最近客户要求把一个树型目录导出成文件夹套文件夹的结构,并提供下载功能,刚开始感觉功能比较容易实现就在最短的时间把基本功能搞定,当发布到服务器上之后发现直接在本应用程序中导出目录(下带ntko文档及附件)再进行压缩,程序直接卡死了!后来就想到了要做一window服务,只是客户给的时间太短,没办法先写一控制台程序生成一个exe文件,然后再调用这个exe文件,这样就可以缓解本程序压力了!

    下面写一个测试项目

    在调用exe端传过去一个要压缩的文件夹的路径,然后在控制台下获取该路径进行压缩,压缩完成之后返回压缩过后的文件夹路径或者返回一个成功与否的状态

    1、返回路径

    复制代码 代码如下:

    string path = @"E:\测试项目\201303\TestWindowsService\ca\bin\Debug\ca.exe";
                string fileName = path;

                Process p = new Process();

                p.StartInfo.UseShellExecute = false;

                p.StartInfo.RedirectStandardOutput = true;

                p.StartInfo.FileName = fileName;

                p.StartInfo.CreateNoWindow = true;

                p.StartInfo.Arguments = @"D:\zhai\aaa\安置帮教";//参数以空格分隔,如果某个参数为空,可以传入””

                p.Start();

                p.WaitForExit();
               //此处可以返回一个字符串,此例是返回压缩成功之后的一个文件路径
                string output = p.StandardOutput.ReadToEnd();
                this.TextBox1.Text = output;

    控制台下代码:

    复制代码 代码如下:

    static void Main(string[] args)
            {
               //接收传过来的待压缩文件路径
                string url = "";
               //返回压缩过后的文件路径
                string retUrl = "";

                if (!string.IsNullOrEmpty(args[0]))
                {
                    url = args[0];
                }
                //此处引用了一个压缩文件的dll  using Ionic.Zip;
                using (ZipFile zf = new ZipFile(System.Text.Encoding.Default))
                {
                    zf.AddDirectory(url);
                    zf.Save(@"D:\zhai\aaa\"+DateTime.Now.ToString("yyyyMMddHHmmss")+".zip");
                    retUrl = @"D:\zhai\aaa\"+DateTime.Now.ToString("yyyyMMddHHmmss")+".zip";
                }          
                Console.Write(retUrl);
            }

    2、返回一个状态

    复制代码 代码如下:

    //Process myProcess = new Process();

                //string fileName = path;
                //string para = "你好 北纬30度!";
                //ProcessStartInfo myProcessStartInfo = new ProcessStartInfo(fileName, para);
                //myProcess.StartInfo = myProcessStartInfo;

                //myProcess.Start();

                //while (!myProcess.HasExited)
                //{

                //    myProcess.WaitForExit();

                //}
                //int returnValue = myProcess.ExitCode;

    控制台下

    复制代码 代码如下:

    static int Main(string[] args)
            {
              int i=0;
              if (!string.IsNullOrEmpty(args[0]))
                {
                    url = args[0];
                }
               if(url)
               {
                 i=1;
                }
               return i;
            }

    您可能感兴趣的文章:
    • .NET Core 1.0创建Self-Contained控制台应用
    • c#取得控制台应用程序根目录
    • C#控制台输出进度和百分比的实例代码
    • C#控制台带参数程序源码编写实例讲解
    • C#控制台程序中处理2个关闭事件的代码实例
    • c#实现简单控制台udp异步通信程序示例
    • c#在控制台输出彩色文字的方法
    • .NET Core创建一个控制台(Console)程序
    上一篇:.NET示波器控件的实例代码分析
    下一篇:.net下调用sqlserver存储过程的小例子
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    .NET调用控制台下生成的exe文件,传参及获取返回参数的思路及代码 .NET,调用,控制,台下,生成,