Чтобы получить текущий рабочий каталог в Go, вы можете использовать пакет os
для получения текущего пути к рабочему каталогу. Вот пример:
package main import ( "fmt" "os" ) func main() { wd, err := os.Getwd() if err != nil { fmt.Println("Error:", err) } fmt.Println("Current working directory:", wd) }
Функция Getwd
возвращает текущий рабочий каталог в виде строки и ошибку, если возникла проблема с получением каталога. Затем вы можете использовать эту строку в своем коде по мере необходимости.
Еще один способ получить исполняемый файл версии Go 1.8 (выпущен в феврале 2017 г.) — использовать os.Executable:
func Executable() (строка, ошибка)
Executable возвращает путь к исполняемому файлу, запустившему текущий процесс. Нет гарантии, что путь по-прежнему указывает на правильный исполняемый файл. Если для запуска процесса использовалась символическая ссылка, в зависимости от операционной системы результатом может быть символическая ссылка или путь, на который она указывает. Если нужен стабильный результат, path/filepath.EvalSymlinks может помочь.
Пример:
package main import ( "fmt" "os" "path/filepath" ) func main() { ex, err := os.Executable() if err != nil { panic(err) } exPath := filepath.Dir(ex) fmt.Println(exPath) }
Чтобы получить только каталог исполняемого файла, вы можете использовать path/filepath.Dir.