2011-07-01 26 views
-2

我有一個Web應用程序,我想執行一個.exe文件。ProcessStartInfo WorkigDirectory參數

ProcessStartInfo info = new ProcessStartInfo(); 
info.WorkingDirectory = this.WorkingDirectory; 

,當我把我的

info.WorkingDirecoty = Request.MapPath("~"); 
info.FileName = Server.MapPath("~/theFile.exe"); 

它的工作原理。但是當我把他們這樣的:

info.WorkingDirecoty = "~"; 
info.FileName = "~/theFile.exe"; 

它不工作,爲什麼?我該如何解決這個問題?或者我應該總是使用Server.MapPath?

+0

最後兩個代碼段的區別在哪裏? – PVitt

+1

爲什麼你不想使用Server.MapPath? –

+0

@PVitt:輸入錯誤。我編輯了他們 – Grace

回答

1

作爲MSDN說

方法使用Server.Mappath

MapPath方法映射到 上 服務器對應物理目錄指定 相對或虛擬路徑。

,你需要給直接的文件路徑的ProcessStartInfo 所以,你應該在這種情況下

使用。如果使用Server.Mappath你不想使用,因爲使用Server.Mappath的參考的System.Web你可以在該庫類中創建一個BaseDir屬性,並將其從您參考的世界中傳遞出來。

希望這會有所幫助。

+0

是的,這就是我在做什麼..但我認爲有一種方法不使用Server.MapPath,再次感謝。 – Grace