簡體   English   中英

如何在asp .net / c#項目代碼中使用腳本文件夾的相對路徑?

[英]how do i use the relative path to the scripts folder in my asp .net / c# project code?

這個問題應該是相對簡單的,我不認為甚至不需要太多解釋,這里是:

我的網站正在使用Process對象執行批處理文件,該對象當然需要指向.bat文件的路徑

我將站點放置在多台服務器上,因此我不想提供絕對路徑,而只想在項目中使用相對路徑(例如,使用我在創建項目時由Visual Studio自動生成的腳本文件夾)

我只是不確定究竟如何在腳本文件夾中的代碼中引用該文件。

這是我當前引用我的.bat的代碼:

p.StartInfo.WorkingDirectory = "C:\\Users\\e\\Desktop\\Test_Bat_Thing";
p.StartInfo.FileName = "C:\\Users\\e\\Desktop\\Test_Bat_Thing\\test.bat";

完美地運作。 但我希望它能夠像

p.StartInfo.WorkingDirectory = ".\\scripts";
p.StartInfo.FileName = ".\\scripts\\test.bat";

請幫忙! 提前致謝 :)

嘗試使用"~/" (Web根操作員)作為對站點Web根文件夾的引用。

您還可以使用以下方法將虛擬路徑轉換為物理路徑:

string rootPath = Server.MapPath("~");

Web根運算符:

ASP.NET包含Web應用程序根運算符(〜),您可以在服務器控件中指定路徑時使用它。 ASP.NET將〜運算符解析為當前應用程序的根。 您可以將〜運算符與文件夾結合使用,以指定基於當前根目錄的路徑。

有關更多詳細信息,請參見MSDN: ASP.NET Web項目路徑

嘗試如下操作:

p.StartInfo.FileName = this.Server.MapPath("test.bat")

如果需要引用當前用戶的桌面路徑,則可以使用此語句

string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);

您的代碼看起來像

p.StartInfo.FileName = System.IO.Path.Combine(desktopPath, "\\Test_Bat_Thing\\test.bat");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM