如何在CSI中获取当前执行脚本的路径或目录?

时间:2017-10-18 15:49:27

标签: c# c#-interactive csi

从CSI脚本获取脚本路径的最佳方法是什么?我希望能够从运行在不同目录中的脚本#load编写脚本,并且仍然可以访问自己的目录,而不受工作目录的影响。我找不到像nodejs的__dirname常量in the docs

1 个答案:

答案 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()}");