显然,当使用 F# 交互时,这行代码将在主题行中显示的路径中搜索。
let files = Directory.GetFiles("MyFolderPath")
有什么方法可以设置交互来搜索当前 fsx 文件正在运行的同一文件夹?或者有什么方法可以控制这种行为?我已经习惯了从 bin\Debug 开始的搜索,这种行为让我很失望。
提前致谢,
鲍勃
显然,当使用 F# 交互时,这行代码将在主题行中显示的路径中搜索。
let files = Directory.GetFiles("MyFolderPath")
有什么方法可以设置交互来搜索当前 fsx 文件正在运行的同一文件夹?或者有什么方法可以控制这种行为?我已经习惯了从 bin\Debug 开始的搜索,这种行为让我很失望。
提前致谢,
鲍勃
这取决于进程 fsi.exe 的启动位置。Fsi 与 IDE 分离,它不知道打开的是哪个文件。运行 Visual Studio 时,fsi 的当前目录是 temp 文件夹。
如果您运行 fsx 文件(fsi foo.fsx
或右键单击“使用 F# Interactive 运行”),fsi 将从当前目录运行。
要查看您所在的位置(在哪个目录中),您可以执行以下操作:
Directory.GetCurrentDirectory()
要更改目录,请使用以下命令:
Directory.SetCurrentDirectory(...)
F# interactive 完全独立于当前的 F# 程序(实际上,可以将其视为在单独的 CMD shell 中运行)。所以恐怕没有简单的方法来获取当前打开的 .fsx 文件。
您也许可以从中提取一些东西,fsi.CommandLineArgs
但我手头没有 VS 来确认这一点。