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