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