无法使用 os.Chdir() 更改目录

Cannot change directory using os.Chdir()

os.Chdir() 在 golang 中无法正常工作。

package main

import (
    "fmt"
    "os"
)

func main() {
    command := "cd C:\"
    if err := os.Chdir(command[3:]); err != nil {
        fmt.Println("Error:\tCould not move into the directory (%s)\n")
    }
}

输出:

Error:   Could not move into the directory

我是不是做错了什么或遗漏了什么?

您没有最小的、可重现的示例。参见:How to create a Minimal, Reproducible Example

这是一个最小的、可重现的代码示例,丢弃了除基本代码之外的所有代码并打印输入、输出和错误。

package main

import (
    "fmt"
    "os"
    "runtime"
)

func main() {
    fmt.Println(os.Getwd())
    dir := `C:\`
    if runtime.GOOS != "windows" {
        dir = `/`
    }
    err := os.Chdir(dir)
    fmt.Println(dir, err)
    fmt.Println(os.Getwd())
}

输出:

Windows:

C:\Users\peter>go run chdir.go
C:\Users\peter <nil>
C:\ <nil>
C:\ <nil>
C:\Users\peter>

Linux:

$ go run chdir.go
/home/peter <nil>
/ <nil>
/ <nil>
$ 

有效。

运行 并将其与您的代码进行比较。