Ce face filepath.Base
filepath.Base taie tot ce este înainte de ultimul separator. Separatoarele de la final sunt ignorate, deci Base("poze/vacanta/") dă vacanta.
Cazuri speciale: o cale goală dă ".", iar o cale formată doar din separatoare dă "/". Pentru numele fără extensie combină cu filepath.Ext: strings.TrimSuffix(base, filepath.Ext(base)).
Parametri
| Parametru | Descriere |
|---|---|
path |
Calea. |
Ce returnează
Ultimul element al căii.
Exemple
Exemplul 1: Ultimul element
package main
import (
"fmt"
"path/filepath"
)
func main() {
for _, c := range []string{"/home/ana/cv.pdf", "poze/vacanta/", "nota.txt", "", "/"} {
fmt.Printf("%-18q -> %q\n", c, filepath.Base(c))
}
}
Rezultat
"/home/ana/cv.pdf" -> "cv.pdf"
"poze/vacanta/" -> "vacanta"
"nota.txt" -> "nota.txt"
"" -> "."
"/" -> "/"
Exemplul 2: Numele fără extensie
package main
import (
"fmt"
"path/filepath"
"strings"
)
func main() {
cale := "/srv/facturi/2025/factura-1042.pdf"
nume := filepath.Base(cale)
fara := strings.TrimSuffix(nume, filepath.Ext(nume))
fmt.Println(nume)
fmt.Println(fara)
fmt.Println(fara + ".xml")
}
Rezultat
factura-1042.pdf
factura-1042
factura-1042.xml
Greșeli frecvente
- Folosești
Basepe un URL cu parametri (poza.jpg?w=200) și primești și parametrii. Parsează URL-ul întâi cunet/url.
Comenzi înrudite
filepath.Dir: Returnează partea de director a unei căi: tot ce este înainte de ultimul element.filepath.Ext: Returnează extensia fișierului: textul de la ultimul punct din ultimul element, inclusiv punctul.filepath.Split: Împarte o cale în director (cu separatorul final) și numele fișierului.filepath.Join: Unește mai multe bucăți într-o cale, cu separatorul corect al sistemului, și curăță rezultatul.