Функция filepath.Match
Функция filepath.Match проверяет,
соответствует ли имя файла указанному шаблону.
Она возвращает true, если имя соответствует шаблону,
и false в противном случае. Первым параметром
функция принимает шаблон для сравнения, вторым -
имя файла, которое нужно проверить. При возникновении
ошибки, например, при неверном синтаксисе шаблона,
функция возвращает ошибку.
Синтаксис
filepath.Match(pattern, name)
Пример
Давайте проверим, соответствует ли имя файла 'file.txt'
шаблону '*.txt':
package main
import (
"fmt"
"path/filepath"
)
func main() {
res, err := filepath.Match("*.txt", "file.txt")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(res)
}
Результат выполнения кода:
true
Пример
Давайте проверим, соответствует ли имя файла 'image.jpg'
шаблону '*.png':
package main
import (
"fmt"
"path/filepath"
)
func main() {
res, err := filepath.Match("*.png", "image.jpg")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(res)
}
Результат выполнения кода:
false
Пример
Давайте проверим, соответствует ли имя файла 'data_2026.csv'
шаблону 'data_????.csv', где каждый знак вопроса
обозначает один любой символ:
package main
import (
"fmt"
"path/filepath"
)
func main() {
res, err := filepath.Match("data_????.csv", "data_2026.csv")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(res)
}
Результат выполнения кода:
true
Пример
Давайте проверим, соответствует ли имя файла 'config.json'
шаблону '*.[jJ][sS][oO][nN]', который поддерживает
регистронезависимое сравнение расширения:
package main
import (
"fmt"
"path/filepath"
)
func main() {
res, err := filepath.Match("*.[jJ][sS][oO][nN]", "config.json")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(res)
}
Результат выполнения кода:
true
Смотрите также
-
функцию
filepath.Glob,
которая возвращает список файлов, соответствующих шаблону -
функцию
filepath.Walk,
которая обходит дерево файловой системы -
функцию
filepath.WalkDir,
которая обходит дерево файловой системы, используяfs.DirEntry -
функцию
filepath.IsAbs,
которая проверяет, является ли путь абсолютным