尝试将文件名从aspx页面传递到console.exe

时间:2010-03-16 00:14:52

标签: c# textbox console argument-passing

我想将aspx页面中的标签或文本框的值传递给console.exe应用程序 如果值为sample.doc则更改为。

我使用

从aspx页面调用
   string f = TextBox1.Text;

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

我尝试过转换为字符串然后使用字符串vatiable inplace of sample.doc但没有运气

object FileName = System.IO.Path.Combine(ExecutableFileInfo.DirectoryName,“sample.doc”);

欢迎任何帮助或想法。 谢谢你

2 个答案:

答案 0 :(得分: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应用程序的帐户具有执行程序的相应权限。

答案 1 :(得分:0)

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

如果是这样,您需要传递文件的完整路径,如下所示:

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