如何在我的asp.net/c#项目代码中使用脚本文件夹的相对路径

本文关键字:脚本 文件夹 路径 相对 代码 项目 我的 asp net | 更新日期: 2023-09-27 18:25:16

这个问题应该相对简单,甚至不需要太多解释,我认为如下:

我的网站正在使用Process对象执行一个批处理文件,该对象当然需要一个.bat文件的路径

我将把我的网站放在多个服务器上,因此我不想给出一个绝对路径,我只想在我的项目中使用一个相对路径(例如,使用visualstudio在我制作项目时自动生成的脚本文件夹)

我只是不确定一旦该文件进入脚本文件夹,如何在代码中引用它。

这是我当前引用.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";

请帮忙!提前感谢:)

如何在我的asp.net/c#项目代码中使用脚本文件夹的相对路径

尝试使用"~/"(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");