2010-09-27 89 views
29

有谁知道如何获得LINQPad脚本文件(.linq)所在目录的路径?LINQPad脚本目录?

或者就脚本本身而言。

请注意,我不是在讨论“我的查询”文件夹的位置,这是在LINQPad中显示的文件夹的位置。

我可以将一个.linq文件保存在磁盘上的任何位置,并通过双击打开它。

例如,如果我将文件保存到C:\Temp\Test.linq,并执行该程序,我想要有C:\TempC:\Temp\Test.linq

基本上我想要类似于Environment.CurrentDirectoryAssembly.GetEntryAssembly().Location的东西,只是为.linq文件。

事情我已经尝试:

  • 翻翻环境变量
  • 通过给予我的脚本
  • 抛出异常,看着堆栈跟踪(在LINQPad装配展望包含一个链接我的脚本在其他地方的临时副本)
  • Environment.CommandLine.Dump(); - 给出LINQPad可执行文件
  • Environment.CurrentDirectory.Dump(); - 给出C:\ windows \ system32
  • Assembly.GetExecutingAssembly().Location.Dump(); - 给temp目录
+0

执行上下文总是将是节目的位置。如果存在文件位置,则需要特定的LinqPAD API。 – cjk 2010-09-27 10:45:52

+1

是的,我有点想知道是否有人知道那是什么:)(假设有一个) – 2010-09-27 12:32:30

回答

56

我只是增加了一个功能来解决这个问题。您现在可以通过下载2.27.1 or 4.27.1 beta build进行测试。

为了得到当前查询的文件夹,使用下面的表达式:

Path.GetDirectoryName (Util.CurrentQueryPath) 
+1

有很多原因,我只是喜欢LINQPad,你似乎没有问题提出新的理由:)非常感谢你! – 2010-09-28 10:17:37

+0

@joe,就是我在找的东西。我也想你的意思是[Path.GetDirectoryName](http://msdn.microsoft.com/en-us/library/system.io.path.getdirectoryname.aspx)。 – Joe 2011-03-28 23:58:02

+3

其实 Path.GetDirectoryName(Util.CurrentQueryPath) – 2011-08-21 08:48:21

0

我想你的意思是编程而不是通过UI本身。

到LINQ文件目录的路径在

%APPDATA持有%\ LINQPad \ querypath.txt

+0

不,它包含“My Queries”目录的路径。我可以在其他地方轻松保存.linq文件,并且它是我想要的真实位置,我将编辑该问题以进行说明。我想要当前正在执行的脚本的.linq文件的完整路径。 – 2010-09-27 10:30:24

+0

好的 - 问题现在更清楚了。我不知道答案,但是当你执行一个尚未保存的查询时,你想返回什么? – kjn 2010-09-27 10:35:43

+0

基本上,温度,不管。在这种情况下,可能合乎逻辑的是,它将路径返回到脚本的临时副本。例如,由于某种原因,我可能对阅读源代码感兴趣,但我的主要用途是访问与脚本本身相同的目录中的数据文件,而不用硬编码脚本所在的路径。 – 2010-09-27 10:38:13