Функция filepath.FromSlash

Функция filepath.FromSlash преобразует все слеши (/) в строке пути в разделитель, принятый в текущей операционной системе. В Windows слеши заменяются на обратную косую черту (\), а в Unix-подобных системах строка остается без изменений, так как разделителем там является слеш. Функция принимает один параметр — строку пути, и возвращает преобразованную строку. Это полезно при работе с путями, полученными из внешних источников, или при написании кроссплатформенного кода.

Синтаксис

gofilepath.FromSlash(path)

Пример

Давайте преобразуем путь со слешами в системный разделитель в Windows-окружении:

gopackage main

import (
  "fmt"
  "path/filepath"
)

func main() {
  path := "dir/subdir/file.txt"
  res := filepath.FromSlash(path)
  fmt.Println(res)
}

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

go"dir\\subdir\\file.txt"

Пример

Давайте преобразуем путь со слешами в системный разделитель в Unix-подобном окружении:

gopackage main

import (
  "fmt"
  "path/filepath"
)

func main() {
  path := "dir/subdir/file.txt"
  res := filepath.FromSlash(path)
  fmt.Println(res)
}

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

go"dir/subdir/file.txt"

Пример

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

gopackage main

import (
  "fmt"
  "path/filepath"
)

func main() {
  path := "dir\\subdir/file.txt"
  res := filepath.FromSlash(path)
  fmt.Println(res)
}

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

go"dir\\subdir\\file.txt"

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

  • функцию filepath.ToSlash,
    которая преобразует системные разделители в слеши
  • функцию filepath.Join,
    которая соединяет элементы пути с правильным разделителем
  • функцию filepath.Clean,
    которая нормализует путь и удаляет лишние разделители
  • функцию filepath.Abs,
    которая возвращает абсолютный путь с правильными разделителями