.NET调用控制台下生成的exe文件,传参及获取返回参数
2013-06-02 13:14
393 查看
先说下需求
最近客户要求把一个树型目录导出成文件夹套文件夹的结构,并提供下载功能,刚开始感觉功能比较容易实现就在最短的时间把基本功能搞定,当发布到服务器上之后发现直接在本应用程序中导出目录(下带ntko文档及附件)再进行压缩,程序直接卡死了!后来就想到了要做一window服务,只是客户给的时间太短,没办法先写一控制台程序生成一个exe文件,然后再调用这个exe文件,这样就可以缓解本程序压力了!
下面写一个测试项目
在调用exe端传过去一个要压缩的文件夹的路径,然后在控制台下获取该路径进行压缩,压缩完成之后返回压缩过后的文件夹路径或者返回一个成功与否的状态
1、返回路径
控制台下代码:
2、返回一个状态
控制台下
最近客户要求把一个树型目录导出成文件夹套文件夹的结构,并提供下载功能,刚开始感觉功能比较容易实现就在最短的时间把基本功能搞定,当发布到服务器上之后发现直接在本应用程序中导出目录(下带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调用控制台下生成的exe文件,传参及获取返回参数的思路及代码
- .NET调用控制台下生成的exe文件,传参及获取返回参数的思路及代码
- 生成带参数的exe文件及matlab调用带参数exe文件的方法
- 在C#中调用EXE文件(传参数、等待、返回结果)
- java调用C的exe文件并传入参数,读出exe输出结果
- 关于在java环境下调用 .net的 webservice无法获取参数的问题
- 使用java传参调用exe并且获取程序进度和返回结果的一种方法
- retrofit2“菜鸟”获取服务器返回的数据与上传文件时的参数问题
- C/C++生成的exe文件如何传参数到main中
- java 中调用window系统中的文件,或者执行命令(shell、.CMD、.EXE)并获取返回值(如果有的话)
- c++与matlab联合编程,调用Deploytool 生成exe文件和dll文件
- 在vc中怎么调用exe文件并传递参数
- 显示调用的程序的返回参数和执行时间 cb_console_runner.exe
- C#调用Rar文件及获取Rar返回值的方法
- 用java调用VS2010 debug生成的.exe文件
- Redis(Windows安装方法与Java调用实例 & 配置文件参数说明 & Java使用Redis所用Jar包 & Redis与Memcached区别 & redis-cli.exe命令及示例)
- MFC的EXE调用VBS,并获取VBS的返回值状态码
- C# 调用exe 执行文件时附带参数
- 批处理调用exe文件,并给exe传入参数的方法
- 在vc中怎么调用exe文件并传递参数