Ce face filepath.Glob
filepath.Glob caută pe disc fișierele care se potrivesc modelului, folosind aceleași reguli ca filepath.Match: * (orice șir fără separator), ? (un caracter), [abc], [a-z], [^0-9]. Rezultatele sunt sortate alfabetic.
* nu trece de separator, iar Glob nu are ** (căutare recursivă). Pentru toate subdirectoarele folosește filepath.WalkDir. Erorile de citire a directoarelor sunt ignorate; singura eroare posibilă este filepath.ErrBadPattern pentru un model greșit.
Parametri
| Parametru | Descriere |
|---|---|
pattern |
Modelul, de exemplu "*.txt" sau "poze/2025-??-*.jpg". |
Ce returnează
Lista căilor găsite (poate fi goală) și nil, sau ErrBadPattern.
Exemple
Exemplul 1: Căutare după extensie și după model
package main
import (
"fmt"
"os"
"path/filepath"
)
func main() {
os.Mkdir("poze", 0o755)
for _, n := range []string{"2025-07-01-mare.jpg", "2025-08-15-munte.jpg", "2024-12-24-brad.jpg", "lista.txt"} {
os.WriteFile(filepath.Join("poze", n), nil, 0o644)
}
toate, _ := filepath.Glob("poze/*.jpg")
fmt.Println(toate)
vara, _ := filepath.Glob("poze/2025-0[78]-*.jpg")
fmt.Println(vara)
nimic, err := filepath.Glob("poze/*.png")
fmt.Println(nimic, len(nimic), err)
}
Rezultat
[poze/2024-12-24-brad.jpg poze/2025-07-01-mare.jpg poze/2025-08-15-munte.jpg]
[poze/2025-07-01-mare.jpg poze/2025-08-15-munte.jpg]
[] 0 <nil>
Exemplul 2: Model greșit
package main
import (
"fmt"
"path/filepath"
)
func main() {
_, err := filepath.Glob("raport[.txt")
fmt.Println(err)
fmt.Println(err == filepath.ErrBadPattern)
}
Rezultat
syntax error in pattern
true
Greșeli frecvente
- Folosești
**/*.goca în shell. Glob nu caută recursiv;**se comportă ca*. - Te aștepți la eroare când nu se găsește nimic. Primești o listă goală și
nil.
Comenzi înrudite
filepath.Match: Verifică dacă un nume se potrivește unui model de tip shell (*, ?, [ ]), fără să acceseze discul.filepath.WalkDir: Parcurge recursiv un director și apelează o funcție pentru fiecare fișier și subdirector, în ordine alfabetică.os.DirFS: Transformă un director de pe disc într-un fs.FS, sistemul de fișiere abstract din Go.filepath.Ext: Returnează extensia fișierului: textul de la ultimul punct din ultimul element, inclusiv punctul.