无法使用 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>
$
有效。
运行 并将其与您的代码进行比较。
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>
$
有效。
运行 并将其与您的代码进行比较。