Функция filepath.Abs

Функция filepath.Abs преобразует переданный ей путь в абсолютный (полный) путь. В качестве параметра функция принимает строку с путём к файлу или директории. Если переданный путь уже является абсолютным, функция возвращает его без изменений. Если путь относительный, функция объединяет его с текущей рабочей директорией. Функция возвращает два значения: абсолютный путь в виде строки и ошибку, если преобразование не удалось.

Синтаксис

gofilepath.Abs(path)

Пример

Давайте преобразуем относительный путь "file.txt" в абсолютный:

gopackage main

import (
  "fmt"
  "path/filepath"
)

func main() {
  absPath, err := filepath.Abs("file.txt")
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  fmt.Println(absPath)
}

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

go"/home/user/project/file.txt"

Пример

Давайте преобразуем абсолютный путь "/etc/hosts":

gopackage main

import (
  "fmt"
  "path/filepath"
)

func main() {
  absPath, err := filepath.Abs("/etc/hosts")
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  fmt.Println(absPath)
}

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

go"/etc/hosts"

Пример

Давайте преобразуем путь с родительской директорией "../dir/file.txt":

gopackage main

import (
  "fmt"
  "path/filepath"
)

func main() {
  absPath, err := filepath.Abs("../dir/file.txt")
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  fmt.Println(absPath)
}

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

go"/home/user/dir/file.txt"

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

  • функцию filepath.IsAbs,
    которая проверяет, является ли путь абсолютным
  • функцию filepath.Join,
    которая объединяет части пути в один путь
  • функцию filepath.Clean,
    которая очищает путь от лишних элементов
  • функцию os.Getwd,
    которая возвращает текущую рабочую директорию