2010-03-16 76 views
0

我想要将aspx页面中的标签或文本框的值传递给console.exe应用程序 ,以便如果值为sample.doc,它将更改为那。试图将文件名从aspx页面传递到console.exe

我从aspx页面调用带有

string f = TextBox1.Text; 

    System.Diagnostics.Process.Start("C:/DocUpload/ConsoleApplication1.exe", f); 

我曾尝试转换为字符串,然后使用了Sample.doc的字符串vatiable就地,但没有运气

目标文件名= System.IO.Path .Combine(ExecutableFileInfo.DirectoryName,“sample.doc”);

任何帮助或想法都会受到欢迎。 谢谢你

+0

什么是文本框的值?它应该是磁盘上的文件吗?如果是这样,什么文件夹?你会得到什么错误? – SLaks 2010-03-16 00:18:39

+0

你应该命名你的文本框。 – SLaks 2010-03-16 00:21:28

+0

文本框的值是我希望处理的文件的名称和任何时间点 控制台应用程序启动时显示文件名并崩溃 – ryder1211212 2010-03-16 09:04:16

回答

0

这是我用来从调用应用程序启动进程。既然你是从一个网络应用程序调用它,你将需要确保你有适当的权限。

 Process   proc    = new Process(); 
     StringBuilder sb     = new StringBuilder(); 
     string[]  aTarget    = target.Split(PATH_SEPERATOR); 
     string   errorMessage; 
     string   outputMessage; 

     foreach (string parm in parameters) 
     { 
      sb.Append(parm + " "); 
     } 

     proc.StartInfo.FileName     = target; 
     proc.StartInfo.RedirectStandardError = true; 
     proc.StartInfo.RedirectStandardOutput = true; 
     proc.StartInfo.UseShellExecute   = false; 
     proc.StartInfo.Arguments    = sb.ToString(); 

     proc.Start(); 

     proc.WaitForExit 
      (
       (timeout <= 0) 
       ? int.MaxValue : (int)TimeSpan.FromMinutes(timeout).TotalMilliseconds 
      ); 


     errorMessage = proc.StandardError.ReadToEnd(); 
     proc.WaitForExit(); 

     outputMessage = proc.StandardOutput.ReadToEnd(); 
     proc.WaitForExit(); 

链接到MSDN:

http://msdn.microsoft.com/en-us/library/system.diagnostics.process.start.aspx

您还需要进行检查,以确保Web应用程序在其下运行的帐户具有相应的权限来执行程序。

+0

链接到MSDN时,应链接到默认版本,而不是.Net 1.1 。 – SLaks 2010-03-16 00:26:37

+0

嘿你好,谢谢你的建议,让我思考更多,所以我在aspx文件中使用了这个 string filename = TextBox1.Text; System.Diagnostics.Process.Start(“C:/DocUpload/ConsoleApplication1.exe”,文件名) 并在console.exe上使用下面的代码 StringBuilder sb = new StringBuilder(); foreach(字符串s在参数中) sb.Append(s); } object docFileName = System.IO.Path.Combine(ExecutableFileInfo.DirectoryName,sb.ToString()); 非常感谢你们最好的 – ryder1211212 2010-03-16 11:34:48

0

您可能正在尝试处理位于不同文件夹中的文件。

如果是这样,你需要传递的完整路径的文件,像这样:

Process.Start(@"C:\DocUpload\ConsoleApplication1.exe", 
       Path.Combine(@"C:\path\to\folder", TextBox1.Text)); 
+0

以及控制台应用程序和文件都在同一个文件夹中,但会尝试你的建议 – ryder1211212 2010-03-16 09:06:06

相关问题