Функция filepath.Match

Функция filepath.Match проверяет, соответствует ли имя файла указанному шаблону. Она возвращает true, если имя соответствует шаблону, и false в противном случае. Первым параметром функция принимает шаблон для сравнения, вторым - имя файла, которое нужно проверить. При возникновении ошибки, например, при неверном синтаксисе шаблона, функция возвращает ошибку.

Синтаксис

gofilepath.Match(pattern, name)

Пример

Давайте проверим, соответствует ли имя файла 'file.txt' шаблону '*.txt':

gopackage main

import (
  "fmt"
  "path/filepath"
)

func main() {
  res, err := filepath.Match("*.txt", "file.txt")
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(res)
}

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

gotrue

Пример

Давайте проверим, соответствует ли имя файла 'image.jpg' шаблону '*.png':

gopackage main

import (
  "fmt"
  "path/filepath"
)

func main() {
  res, err := filepath.Match("*.png", "image.jpg")
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(res)
}

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

gofalse

Пример

Давайте проверим, соответствует ли имя файла 'data_2026.csv' шаблону 'data_????.csv', где каждый знак вопроса обозначает один любой символ:

gopackage 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)
}

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

gotrue

Пример

Давайте проверим, соответствует ли имя файла 'config.json' шаблону '*.[jJ][sS][oO][nN]', который поддерживает регистронезависимое сравнение расширения:

gopackage 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)
}

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

gotrue

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

  • функцию filepath.Glob,
    которая возвращает список файлов, соответствующих шаблону
  • функцию filepath.Walk,
    которая обходит дерево файловой системы
  • функцию filepath.WalkDir,
    которая обходит дерево файловой системы, используя fs.DirEntry
  • функцию filepath.IsAbs,
    которая проверяет, является ли путь абсолютным