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

发布于 2025-01-07 18:53:22 字数 585 浏览 0 评论 0原文

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

我的网站正在使用 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";

请帮忙!提前致谢 :)

this question should be relatively simple and shouldnt even require much explanation i dont think, here goes:

my website is executing a batch file using the Process object which requires a path to the .bat file of course

i will be housing my site on multiple servers therefore i dont want to give an absolute path i want to just use a relative path within my project (for example use the scripts folder automatically generated by visual studio when i made my project)

i just am not sure exactly how to reference that file within the code once its in the scripts folder.

here is my current code for referencing my .bat:

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

which works perfectly. but i want it to be something along the lines of

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

please help! thanks in advance :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

海未深 2025-01-14 18:53:22

尝试使用 "~/" (Web Root Operator)作为站点 Web 根文件夹的引用。

您还可以使用以下方法将虚拟路径转换为物理路径:

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

Web Root Operator:

ASP.NET 包含 Web 应用程序根运算符 (~),您可以
在服务器控件中指定路径时使用。 ASP.NET解决了~
运算符到当前应用程序的根目录。可以用~
运算符与文件夹结合指定基于的路径
在当前根目录上。

有关详细信息,请参阅 MSDN:ASP.NET Web 项目路径

Try out using "~/" (Web Root Operator) as reference to the site web root folder.

Also you can convert Virtual Path into a Physical Path using:

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

Web Root Operator:

ASP.NET includes the Web application root operator (~), which you can
use when specifying a path in server controls. ASP.NET resolves the ~
operator to the root of the current application. You can use the ~
operator in conjunction with folders to specify a path that is based
on the current root.

For more details see on MSDN: ASP.NET Web Project Paths

山川志 2025-01-14 18:53:22

尝试如下操作:

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

Try something like the following:

p.StartInfo.FileName = this.Server.MapPath("test.bat")
紫罗兰の梦幻 2025-01-14 18:53:22

如果您需要引用当前用户的桌面路径,您可以使用此语句,

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

您的代码将如下所示

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

If you need to reference the Desktop Path of the current user, you can use this statement

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

your code will look like

p.StartInfo.FileName = System.IO.Path.Combine(desktopPath, "\\Test_Bat_Thing\\test.bat");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文