2016-05-18 31 views
-1

的Application.StartupPath我有程序1,將來自程序2啓動這樣的:值的節目

Process.Start(@"C:\myfolder\myprogram.exe"); 

在程序2我有值的​​變量:Application.StartupPath。 如果我從桌面上的program1啓動了Program2和Process.Start(@「C:\ myfolder \ myprogram.exe」),則myprogram的Application.StartupPath是桌面,而不是我的文件夾。爲什麼?謝謝大家

回答

2

這是因爲你從桌面啓動程序。這有點像從Windows快捷方式中的「開始」框。我通常使用下面,因爲它永遠是錯的,因爲它着眼於在當前可執行文件所在的代碼,但你也可以使用的ProcessStartInfo和工作目錄

https://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.workingdirectory(v=vs.110).aspx

string ThisFolder = new FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).Directory.FullName; 

問候啓動

Liam

+0

只是一個小bug:GetExecutingAssembly()而不是GetExecutingAssembly。非常感謝! – Alex

+1

對不起,我寫了VB.NET,然後用轉換器在C#中爲你添加了代碼lol如果它對你有用,請隨時點擊接受的答案(我編輯了我的答案以顯示你提到的改變) –