2010-03-03 115 views
1

我創建一個Windows服務,我想在代碼中放入一個動態路徑。但它只接受靜態代碼。動態字符串x靜態字符串

這工作:

Process.Start("C:\\Program Files\\Program\\Program.exe", "-socket 12345"); 

但這並不:

String path = "C:\\Program Files\\Program"; 
String programName = "\\Program.exe"; 
String fileLocation = path + programName; 
Process.Start(fileLocation, "-socket 12345"); 

有人能幫助我嗎?

回答

2

你不應該連接路徑。改爲使用Path.Combine

String path = @"C:\Program Files\Program"; 
String programName = "Program.exe"; 
String fileLocation = System.IO.Path.Combine(path, programName); 
Process.Start(fileLocation, "-socket 12345"); 
+0

只要確保不要像OP寫的那樣''\\ Program.exe「'。如果第二個路徑以\開始,則它被認爲是根並且沒有連接返回。 – 2010-03-03 04:37:10

2

您的代碼示例會導致對Process.Start進行相同的調用。無論什麼問題,這裏都沒有顯示。

+0

爲什麼在第一個樣本中找到文件,第二個樣本沒有? – Mig 2010-03-03 04:39:54

+0

@Mig,因爲您沒有發佈完整的代碼。工作和非工作代碼是相同的。 – 2010-03-03 04:47:57