从CSI脚本获取脚本路径的最佳方法是什么?我希望能够从运行在不同目录中的脚本#load
编写脚本,并且仍然可以访问自己的目录,而不受工作目录的影响。我找不到像nodejs的__dirname
常量in the docs。
答案 0 :(得分:1)
目前,我能找到最好的方法来确定当前正在执行的脚本的目录是非常详细的。我想知道是否有一些我不知道的快捷方式/内置,但这里有:
GetMineDirectory.csx
:
#!/usr/bin/env csi
using System;
using System.IO;
using System.Runtime.CompilerServices;
static string GetMyPath(
[CallerFilePath] string path = "")
=> path;
// Do not write in terms of GetMyPath() in case we are called from another script.
static string GetMyDirectory(
[CallerFilePath] string path = "")
=> Path.GetDirectoryName(path);
Console.WriteLine($"My full path is {GetMyPath()}");
Console.WriteLine($"My directory is {GetMyDirectory()}");