2012-01-19 22 views
1

可能重複:
.Net Process.Start default directory?C#相當於cd C: appFolder c: app.exe?

我有一個C#應用程序,單是具體的。此應用程序需要在用戶系統上啓動另一個應用程序。我知道Process.Start以及如何使用它,但是這種情況使得這種情況無法正常工作。

出於某種原因,我試圖通過Process.Start啓動的程序需要從它駐留的目錄中調用,否則它會在打開時出現錯誤。

我的意思是,如果我打開一個命令提示符並輸入: C:\ appFolder \ app.exe 應用程序會給我一個錯誤。

但是,如果我打開一個窗口,然後進入: CD C:\ appFolder APP.EXE

然後,它將啓動就好了。

我與process.start的問題是它試圖打開應用程序,而不先做什麼是'cd c:\ appFolder'的等價物,因此應用程序在打開時會給出錯誤。

那麼我該怎麼做使Process.Start做什麼等同於首先導航到應用程序文件夾'cd c:\ appFolder',然後調用app.exe?

順便說一句,我已經通過把 CD C解決了這個問題:\ appFolder APP.EXE

到一個.bat文件,並已打開的Process.Start .bat文件,它工作得很好。但我很想知道是否有辦法切出.bat文件。

回答

3

使用cd blah只是改變了你的工作目錄之前嘗試改變工作目錄。您可以通過設置ProcessStartInfoWorkingDirectory來設置流程的工作目錄。也許是這樣的:

var procInfo = new ProcessStartInfo("app.exe"); 
procInfo.WorkingDirectory = @"C:\appFolder"; 
Process.Start(procInfo); 
1
 var psi = new ProcessStartInfo("app.exe"); 
     psi.WorkingDirectory = @"C:\appFolder"; 
     Process.Start(psi);