LINQPad script directory?

Linqpad

Linqpad Problem Overview


Does anyone know how to get hold of the path to the directory where the LINQPad script file (.linq) resides?

Or to the script itself for that matter.

Note that I'm not talking about the location of the "My Queries" folder, the one shown inside LINQPad.

I can save a .linq file anywhere on disk, and open it by double-clicking on it.

For instance, if I save the file to C:\Temp\Test.linq, and execute the program, I'd like to have either C:\Temp or C:\Temp\Test.linq.

Basically I'd like something akin to Environment.CurrentDirectory or Assembly.GetEntryAssembly().Location, just for the .linq file.

Things I've tried:

  • Looking through environment variables
  • Looking through the LINQPad assembly that is given to my script
  • Throwing an exception and looking at the stacktrace (contains a link to a temporary copy of my script somewhere else)
  • Environment.CommandLine.Dump(); - gives LINQPad executable
  • Environment.CurrentDirectory.Dump(); - gives C:\windows\system32
  • Assembly.GetExecutingAssembly().Location.Dump(); - gives temp directory

Linqpad Solutions


Solution 1 - Linqpad

I've just added a feature to address this. You can test it now by downloading the 2.27.1 or 4.27.1 beta build.

To get the current query's folder, use the following expression:

Path.GetDirectoryName (Util.CurrentQueryPath)

Solution 2 - Linqpad

I presume you mean programatically and not through the UI itself.

The path to the linq file directory is held in

%APPDATA%\LINQPad\querypath.txt

Solution 3 - Linqpad

The next question after "How do I get LinqPad script directory" is "How do I set it?" below is how you do it and link to where I found the answer

Directory.SetCurrentDirectory (Path.GetDirectoryName (Util.CurrentQueryPath));

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionLasse V. KarlsenView Question on Stackoverflow
Solution 1 - LinqpadJoe AlbahariView Answer on Stackoverflow
Solution 2 - LinqpadkjnView Answer on Stackoverflow
Solution 3 - LinqpadGeovani MartinezView Answer on Stackoverflow