Как получить системный корневой каталог для Windows в Google Golang?

В Windows системный корневой каталог может выглядеть так: C:// или же D:// (когда ОС установлена ​​в драйвере D:/). Как получить эту папку в Go?

3 ответа

Решение

Вы могли бы использовать filepath.VolumeName(os.GetEnv("SYSTEMROOT")) + "\\" или короче os.GetEnv("SYSTEMDRIVE") + "\\", windir Переменная окружения, вероятно, больше не должна использоваться честно, поскольку она не является системной переменной среды.

Источник для упомянутых переменных среды

Вы можете использовать os.Getenv, чтобы получить значение для переменной среды "windir". Пример ниже:

package main
import "os"
import "fmt"


func main() {

    fmt.Println("system dir: ", os.Getenv("windir"))

}

Вот некоторые варианты, которые работают с Windows или Unix.

      import "os"

func root() string {
   return os.Getenv("SystemDrive") + string(os.PathSeparator)
}
      import (
   "os"
   "path/filepath"
)

func root() string {
   s := os.TempDir()
   return filepath.Join(s, "..", "..")
}
      import (
   "os"
   "strings"
)

func root() string {
   s := os.TempDir()
   return s[:strings.IndexRune(s, os.PathSeparator) + 1]
}
      import (
   "os"
   "path/filepath"
)

func root() string {
   s := os.TempDir()
   return filepath.VolumeName(s) + string(os.PathSeparator)
}
      import (
   "os"
   "strings"
)

func root() string {
   s := os.TempDir()
   return strings.SplitAfterN(s, string(os.PathSeparator), 2)[0]
}
Другие вопросы по тегам