-1

os.Chdir() in golang is not working properly.

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")
    }
}

Outputs:

Error:   Could not move into the directory

Am I doing something wrong or missing something?

asd plougry
  • 143
  • 1
  • 9

1 Answers1

1

You don't have minimal, reproducible example. See: How to create a Minimal, Reproducible Example.

Here is a minimum, reproducible example for your code, discarding all but essential code and printing input, output, and errors.

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())
}

Output:

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>
$ 

It works.

Run it and compare it to your code.

peterSO
  • 158,998
  • 31
  • 281
  • 276