Функция filepath.VolumeName

Функция filepath.VolumeName из пакета path/filepath возвращает имя тома из переданного пути. В операционных системах, таких как Windows, это может быть буква диска с двоеточием (например, "C:"), а в Unix-подобных системах эта функция всегда возвращает пустую строку, так как там нет понятия тома. Функция принимает один параметр — строку пути, а возвращает строку, содержащую имя тома.

Синтаксис

gofilepath.VolumeName(path)

Пример

Давайте получим имя тома для пути в Windows:

gopackage main

import (
  "fmt"
  "path/filepath"
)

func main() {
  path := "C:\\Users\\User\\Documents\\file.txt"
  res := filepath.VolumeName(path)
  fmt.Println(res)
}

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

go"C:"

Пример

Для пути с UNC-адресом (сетевым путем) в Windows функция возвращает полное имя сервера:

gopackage main

import (
  "fmt"
  "path/filepath"
)

func main() {
  path := "\\\\server\\share\\folder\\file.txt"
  res := filepath.VolumeName(path)
  fmt.Println(res)
}

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

go"\\\\server\\share"

Пример

В Unix-подобных системах (Linux, macOS) функция всегда возвращает пустую строку:

gopackage main

import (
  "fmt"
  "path/filepath"
)

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

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

go""

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

  • функцию filepath.Dir,
    которая возвращает родительский каталог пути
  • функцию filepath.Base,
    которая возвращает последний элемент пути
  • функцию filepath.Split,
    которая разделяет путь на каталог и имя файла
  • функцию filepath.IsAbs,
    которая проверяет, является ли путь абсолютным