Функция os.Getwd

Функция os.Getwd возвращает абсолютный путь к текущей рабочей директории. Она возвращает два значения: строку с путем и ошибку типа error. Если функция выполняется успешно, ошибка будет равна nil. В противном случае возвращается пустая строка и соответствующая ошибка.

Синтаксис

goos.Getwd()

Пример

Давайте получим путь к текущей рабочей директории и выведем его:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  dir, err := os.Getwd()
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  fmt.Println(dir)
}

Результат выполнения кода (путь будет зависеть от вашей системы):

go"/home/user/project"

Пример

Обработаем ошибку, которая может возникнуть при получении текущей директории:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  dir, err := os.Getwd()
  if err != nil {
    fmt.Printf("Failed to get current directory: %v\n", err)
    return
  }
  fmt.Printf("Current directory: %s\n", dir)
}

Результат выполнения кода:

go"Current directory: /home/user/project"

Пример

Используем полученный путь для построения абсолютного пути к файлу с помощью filepath.Join:

gopackage main

import (
  "fmt"
  "os"
  "path/filepath"
)

func main() {
  dir, err := os.Getwd()
  if err != nil {
    fmt.Println("Error:", err)
    return
  }

  filePath := filepath.Join(dir, "config.yaml")
  fmt.Println(filePath)
}

Результат выполнения кода:

go"/home/user/project/config.yaml"

Смотрите также

  • функцию os.Chdir,
    которая изменяет текущую рабочую директорию
  • функцию os.Stat,
    которая получает информацию о файле или директории
  • функцию os.Mkdir,
    которая создает новую директорию
  • функцию filepath.Abs,
    которая возвращает абсолютный путь к файлу