Как получить системный корневой каталог для 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]
}