Каталог скриптов LINQPad? - PullRequest
36 голосов
/ 27 сентября 2010

Кто-нибудь знает, как получить путь к каталогу, в котором находится файл сценария LINQPad (.linq)?

Или самому сценарию.

Обратите внимание, что я не говорю о расположении папки "Мои запросы", которая показана внутри LINQPad.

Я могу сохранить файл .linq в любом месте на диске и открыть его, дважды щелкнув по нему.

Например, если я сохраню файл в C:\Temp\Test.linq и выполню программу, я хотел бы иметь либо C:\Temp, либо C:\Temp\Test.linq.

По сути, я бы хотел что-то похожее на Environment.CurrentDirectory или Assembly.GetEntryAssembly().Location, только для файла .linq.

Вещи, которые я пробовал:

  • Просмотр переменных окружения
  • Просмотр сборки LINQPad, предоставленной моему сценарию
  • Создание исключения и просмотр трассировки стека (содержит ссылку на временную копию моего скрипта где-то еще)
  • Environment.CommandLine.Dump(); - дает исполняемый файл LINQPad
  • Environment.CurrentDirectory.Dump(); - дает C: \ windows \ system32
  • Assembly.GetExecutingAssembly().Location.Dump(); - дает временную директорию

Ответы [ 2 ]

67 голосов
/ 28 сентября 2010

Я только что добавил функцию для решения этой проблемы.Вы можете проверить это сейчас, загрузив бета-версию 2.27.1 или 4.27.1 .

Чтобы получить папку текущего запроса, используйте следующее выражение:

Path.GetDirectoryName (Util.CurrentQueryPath)
0 голосов
/ 27 сентября 2010

Полагаю, вы имеете в виду программно, а не через сам пользовательский интерфейс.

Путь к каталогу файлов linq хранится в

% APPDATA% \ LINQPad \ querypath.txt

...