Как использовать относительный путь к папке скриптов в моем коде проекта asp .net / c #? - PullRequest
1 голос
/ 22 февраля 2012

этот вопрос должен быть относительно простым и даже не требовать большого объяснения, я не думаю, что здесь:

мой веб-сайт выполняет пакетный файл, используя объект 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";

, пожалуйста, помогите!заранее спасибо :)

Ответы [ 3 ]

2 голосов
/ 22 февраля 2012

Попробуйте использовать "~/" (веб-корневой оператор) в качестве ссылки на корневую папку веб-сайта.

Также вы можете преобразовать виртуальный путь в физический путь, используя:

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

Web Root Operator:

ASP.NET включает в себя корневой оператор веб-приложения (~), который вы можете использовать при указании пути в серверных элементах управления.ASP.NET преобразует оператор ~ в корень текущего приложения.Вы можете использовать оператор ~ вместе с папками, чтобы указать путь, основанный на текущем корне.

Подробнее см. В MSDN: Пути веб-проекта ASP.NET

0 голосов
/ 22 февраля 2012

Попробуйте что-то вроде следующего:

p.StartInfo.FileName = this.Server.MapPath("test.bat")
0 голосов
/ 22 февраля 2012

Если вам необходимо указать путь к рабочему столу текущего пользователя, вы можете использовать это утверждение

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

ваш код будет выглядеть как

p.StartInfo.FileName = System.IO.Path.Combine(desktopPath, "\\Test_Bat_Thing\\test.bat");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...