2012-03-16 91 views
0

我有一個exe調用第二個exe文件。都寫在C#坐在同一個文件夾。 在傳遞給第二個exe的參數中有一個文件的路徑。該文件在第二個exe中讀取。 除文件位於用戶的配置文件應用程序文件夾並且配置文件存儲在網絡上時,所有工作都可以正常工作。 路徑構造與此:外部exe無法訪問漫遊配置文件

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + SubFolderAndFileName 

第一個exe文件讀取該文件,沒有任何問題,但第二EXE文件獲取的不存在錯誤。

這是代碼發動第二EXE:

Process p = new Process(); 
p.StartInfo.Arguments = Args; 
p.StartInfo.FileName = "second.exe"; 
p.Start(); 

感謝您的任何幫助。

+0

您應該打印您嘗試訪問文件的名稱 - 。有可能是錯的構造 – 2012-03-16 02:12:51

+0

Followi在@AlexeiLevenkov說的時候,我總是試圖在構建路徑時使用Path.Combine(path1,path2),所以我確保路徑正確連接,而不僅僅是做path1 + path2 – BryanJ 2012-03-16 02:38:04

回答

0

您需要確保路徑是用引號引起來的。這是極有可能會包含空格(XP的AppData文件夾是C:\Documents and Settings\User\Application Data,這將意味着該路徑的部分是作爲兩個不同的參數,前處理:

C:\Program Files\My Company\My Program

作爲一個不帶引號的字符串變成:

0 => C:\Program 
1 => Files\My 
2 => Company\My 
3 => Program 

可能不是你想要的東西,而且容易造成問題

+0

到底發生了什麼......謝謝。 – Fer 2012-03-18 23:34:21