Функция filepath.Abs
Функция filepath.Abs преобразует переданный ей путь в абсолютный (полный) путь.
В качестве параметра функция принимает строку с путём к файлу или директории.
Если переданный путь уже является абсолютным, функция возвращает его без изменений.
Если путь относительный, функция объединяет его с текущей рабочей директорией.
Функция возвращает два значения: абсолютный путь в виде строки и ошибку, если преобразование не удалось.
Синтаксис
filepath.Abs(path)
Пример
Давайте преобразуем относительный путь "file.txt" в абсолютный:
package main
import (
"fmt"
"path/filepath"
)
func main() {
absPath, err := filepath.Abs("file.txt")
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println(absPath)
}
Результат выполнения кода (будет зависеть от текущей директории):
"/home/user/project/file.txt"
Пример
Давайте преобразуем абсолютный путь "/etc/hosts":
package main
import (
"fmt"
"path/filepath"
)
func main() {
absPath, err := filepath.Abs("/etc/hosts")
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println(absPath)
}
Результат выполнения кода:
"/etc/hosts"
Пример
Давайте преобразуем путь с родительской директорией "../dir/file.txt":
package 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)
}
Результат выполнения кода (будет зависеть от текущей директории):
"/home/user/dir/file.txt"
Смотрите также
-
функцию
filepath.IsAbs,
которая проверяет, является ли путь абсолютным -
функцию
filepath.Join,
которая объединяет части пути в один путь -
функцию
filepath.Clean,
которая очищает путь от лишних элементов -
функцию
os.Getwd,
которая возвращает текущую рабочую директорию