2015-10-12 98 views
0

我需要從「C:Program Files \ First Flight \ Temp Client」文件夾運行可執行文件(Temp.exe)。該文件夾包含具有類似名稱的文件作爲TempClientSetup.exml如何從C#中具有相同名稱的文件夾中打開文件

我有這樣的代碼

var path = @"C:\Program Files\First Flight\Temp Client"; 
var exepath = Path.Combine(Path.GetDirectoryName(path), "Temp.exe"); 
app = Application.Launch(exepath); 

當我運行這段代碼,TempClientSetup.exml文件在這裏

任何線索執行的,而不是Temp.exe ? Pl建議。

+0

var exepath = Path.Combine(path,「Temp.exe」); – dremerDT

+0

放一個「\」以路徑結尾......像「C:\ Program Files \ First Flight \ Temp Client \」 –

+1

@PranavPatel使用Path類的想法是爲了避免自己做所有這些操作系統特定的事情。你的建議打敗了整個觀點。 –

回答

0

在路徑末尾貼上斜槓,或者除去Path.GetDirectoryName調用。

var path = @"C:\Program Files\First Flight\Temp Client\"; 
var exepath = Path.Combine(Path.GetDirectoryName(path), "Temp.exe"); 

var path = @"C:\Program Files\First Flight\Temp Client"; 
var exepath = Path.Combine(path, "Temp.exe"); 
+0

相同的方法嘗試過,但沒有工作 – shreevaze

+0

這兩種解決方案都會爲您嘗試打開的exe提供正確的路徑。我在發佈之前檢查過它們。如果你還沒有得到正確的文件,那就表明文件不存在或者你的系統以某種方式搞砸了。 請你仔細檢查文件是否在你期望的位置? 也請調試代碼並檢查exepath是否具有正確的值。如果它不請,請發佈它的價值,看看我們能否進一步提供幫助? –

+0

現在適合我:)謝謝你的幫助Matt – shreevaze

0

這是解決我的問題對於那些誰面對這個問題,您可能需要設置exe文件的工作目錄推出;-)這樣

var psi = new ProcessStartInfo(@"Temp.exe"); 
psi.WorkingDirectory = @"C:\Program Files\First Flight\Temp Client";    
app = Application.Launch(psi); 
相關問題