在 Go 中等效于目录



我正在学习围棋,我不知道我是否错过了什么,但是搜索后,我想知道:NodeJS 中的 dirname 在 Go 中是否有等价物?如何在 Go 代码中获取当前目录,或者我必须实现一个?

在 Go 中,您可以使用返回与当前目录对应的根路径名的 os.Getwd

dir, err := os.Getwd()
if err != nil {
    fmt.Errorf("Dir %v does not exists", err)
}

我同时在研究 V 和 Golang,显然,有一个名为 os.Executable() 的函数具有最接近的__dirname等价物。根据此源,您运行 os.Executable() 函数以获取运行代码的目录,然后执行filepath.Dir()仅获取绝对路径而不获取可执行文件名称。

我只是从参考中复制粘贴了这个片段,但这就是你在 Go 中获取__dirname的方式:

package main
import (
    "fmt"
    "os"
    "path/filepath"
)
func main() {
    // Getting the path name for the executable
    // that started the current process.
    pathExecutable, err := os.Executable()
    if err != nil {
        panic(err)
    }
    // Getting the directory path/name
    dirPathExecutable := filepath.Dir(pathExecutable)
    fmt.Println("Directory of the currently running file...")
    fmt.Println(dirPathExecutable)
}

我同意,之前的答案是有区别的。它在 V 中的工作方式也类似,它始终会从您运行代码的位置获取当前工作目录。因此,如果您在主目录中,则在运行 os.Getwd() 时,它将打印出主目录而不是您执行代码的位置。

相关内容

  • 没有找到相关文章

最新更新