Функция filepath.Base

Функция filepath.Base из пакета path/filepath возвращает последний элемент пути. Она удаляет все символы разделителя пути до последнего элемента и возвращает его. В качестве параметра функция принимает строку с путем, а возвращает строку с последним элементом. Если путь заканчивается на разделитель, функция возвращает последний непустой элемент.

Синтаксис

gofilepath.Base(path)

Пример

Давайте извлечем имя файла из полного пути:

gopackage main

import (
  "fmt"
  "path/filepath"
)

func main() {
  path := "/home/user/docs/file.txt"
  res := filepath.Base(path)
  fmt.Println(res)
}

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

go"file.txt"

Пример

Давайте посмотрим, как функция обрабатывает путь, заканчивающийся разделителем:

gopackage main

import (
  "fmt"
  "path/filepath"
)

func main() {
  path := "/home/user/docs/"
  res := filepath.Base(path)
  fmt.Println(res)
}

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

go"docs"

Пример

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

gopackage main

import (
  "fmt"
  "path/filepath"
)

func main() {
  path := "/home//user///docs////file.txt"
  res := filepath.Base(path)
  fmt.Println(res)
}

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

go"file.txt"

Пример

Давайте посмотрим, что вернет функция для пути, состоящего только из разделителей:

gopackage main

import (
  "fmt"
  "path/filepath"
)

func main() {
  path := "/////"
  res := filepath.Base(path)
  fmt.Println(res)
}

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

go"/"

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

  • функцию filepath.Dir,
    которая возвращает директорию из пути
  • функцию filepath.Split,
    которая разделяет путь на директорию и имя файла
  • функцию filepath.Ext,
    которая возвращает расширение файла
  • функцию filepath.Clean,
    которая очищает путь от лишних разделителей