2011-07-16 29 views
5

我目前正試圖從特定文件夾中啓動可執行文件。定義執行程序的工作目錄(C#)

我有下面的代碼的應用程序崩潰奇怪的是:

Process p = new Process(); 
p.StartInfo.WorkingDirectory = "dump"; 
p.StartInfo.FileName = s; 
p.Start(); 

我調試它,和它說,它不能找到啓動文件,但文件/文件夾defintly存在,是我的語法不好?

以下作品的代碼,而是一個工作directroy沒有定義,所以它不能找到可執行

Process.Start(@"dump\", s); 

回答

9

您設置(「轉儲」)的工作目錄是相對於當前的工作目錄。您可能想要檢查當前的工作目錄。

您應該能夠將工作目錄設置爲使用此代碼執行組件目錄...

string exeDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); 
Directory.SetCurrentDirectory(exeDir); 

或者更好,但不要使用相對路徑,設置p.StartInfo.WorkingDirectory到絕對路徑。

+0

正確,我在當前的orking目錄中有一個dump文件夾 – James

0

如果不存在可執行文件,則無法從文件夾啓動可執行文件。您必須將可執行文件複製到此文件夾,並且只有在此之後,才能爲此可執行文件啓動Process