Ce face filepath.Split
filepath.Split taie calea imediat după ultimul separator. Partea de director păstrează separatorul de la final, iar dir + file dă exact calea inițială.
Diferența față de Dir și Base: Split nu curăță nimic. Split("nota.txt") dă "" și "nota.txt", în timp ce Dir("nota.txt") dă ".".
Parametri
| Parametru | Descriere |
|---|---|
path |
Calea. |
Ce returnează
Directorul (cu separator final sau gol) și numele fișierului (poate fi gol).
Exemple
Exemplul 1: Split comparat cu Dir și Base
package main
import (
"fmt"
"path/filepath"
)
func main() {
for _, c := range []string{"/home/ana/cv.pdf", "nota.txt", "poze/"} {
dir, fisier := filepath.Split(c)
fmt.Printf("Split(%q) = %q, %q | Dir = %q, Base = %q\n",
c, dir, fisier, filepath.Dir(c), filepath.Base(c))
}
}
Rezultat
Split("/home/ana/cv.pdf") = "/home/ana/", "cv.pdf" | Dir = "/home/ana", Base = "cv.pdf"
Split("nota.txt") = "", "nota.txt" | Dir = ".", Base = "nota.txt"
Split("poze/") = "poze/", "" | Dir = "poze", Base = "poze"
Exemplul 2: Redenumirea păstrând directorul
package main
import (
"fmt"
"path/filepath"
"strings"
)
func main() {
cale := "albume/2025/IMG_0042.JPG"
dir, nume := filepath.Split(cale)
nou := dir + "litoral-" + strings.ToLower(nume)
fmt.Println(nou)
}
Rezultat
albume/2025/litoral-img_0042.jpg
Greșeli frecvente
- Folosești
dirdinSplitca nume de director și te încurcă/-ul final. Pentru directorul curățat foloseștefilepath.Dir.
Comenzi înrudite
filepath.Dir: Returnează partea de director a unei căi: tot ce este înainte de ultimul element.filepath.Base: Returnează ultimul element al unei căi: numele fișierului (sau al ultimului director).filepath.Join: Unește mai multe bucăți într-o cale, cu separatorul corect al sistemului, și curăță rezultatul.filepath.SplitList: Împarte o listă de căi precum $PATH după separatorul de listă al sistemului (: pe Unix, ; pe Windows).