РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
552 of 1593 menu

Функция filepath.Rel

Функция filepath.Rel вычисляет относительный путь от базового каталога до указанного целевого пути. В первый параметр передается базовый путь (basepath), во второй параметр — целевой путь (targpath). Функция возвращает строку с относительным путем и ошибку, если путь не может быть вычислен.

Синтаксис

func filepath.Rel(basepath, targpath string) (string, error)

Пример

Получим относительный путь от каталога /home/user/project к файлу /home/user/project/docs/readme.md:

package main import ( "fmt" "path/filepath" ) func main() { base := "/home/user/project" target := "/home/user/project/docs/readme.md" rel, err := filepath.Rel(base, target) if err != nil { fmt.Println(err) return } fmt.Println(rel) }

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

"docs/readme.md"

Пример

Вычислим относительный путь из каталога /home/user в каталог /var/log:

package main import ( "fmt" "path/filepath" ) func main() { base := "/home/user" target := "/var/log" rel, err := filepath.Rel(base, target) if err != nil { fmt.Println(err) return } fmt.Println(rel) }

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

"../../var/log"

Пример

Попробуем получить относительный путь, когда целевой путь не находится внутри базового каталога:

package main import ( "fmt" "path/filepath" ) func main() { base := "/home/user/project" target := "/etc/config" rel, err := filepath.Rel(base, target) if err != nil { fmt.Println(err) return } fmt.Println(rel) }

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

"../../../etc/config"

Пример

Обработаем случай, когда базовый путь является родительским каталогом для целевого пути:

package main import ( "fmt" "path/filepath" ) func main() { base := "/home/user/project/docs" target := "/home/user/project" rel, err := filepath.Rel(base, target) if err != nil { fmt.Println(err) return } fmt.Println(rel) }

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

".."

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

  • функцию filepath.Abs,
    которая преобразует относительный путь в абсолютный
  • функцию filepath.Join,
    которая объединяет элементы пути с разделителем
  • функцию filepath.Clean,
    которая нормализует путь
  • функцию filepath.Split,
    которая разделяет путь на каталог и имя файла
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить