Функция filepath.Clean
Функция filepath.Clean нормализует переданный путь,
возвращая его кратчайшее эквивалентное представление.
В первый параметр передается исходный путь в виде строки.
Она удаляет лишние разделители, заменяет косую черту на
разделитель операционной системы, обрабатывает элементы
. (текущая директория) и .. (родительская директория).
Синтаксис
filepath.Clean(path)
Пример
Давайте нормализуем путь с лишними разделителями и элементами:
package main
import (
"fmt"
"path/filepath"
)
func main() {
res := filepath.Clean("a//b/../c/./d")
fmt.Println(res)
}
Результат выполнения кода:
"a/c/d"
Пример
Давайте посмотрим, как функция обрабатывает путь с элементом
.., который выходит за пределы корня:
package main
import (
"fmt"
"path/filepath"
)
func main() {
res := filepath.Clean("/a/../../b")
fmt.Println(res)
}
Результат выполнения кода:
"/b"
Пример
Давайте убедимся, что пустой путь превращается в точку:
package main
import (
"fmt"
"path/filepath"
)
func main() {
res := filepath.Clean("")
fmt.Println(res)
}
Результат выполнения кода:
"."
Смотрите также
-
функцию
filepath.Join,
которая объединяет части пути с правильным разделителем -
функцию
filepath.Abs,
которая возвращает абсолютный путь -
функцию
filepath.Base,
которая возвращает последний элемент пути -
функцию
filepath.Dir,
которая возвращает родительскую директорию пути