2010-03-16 77 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

相關問題