filepath.Split în Go

Împarte o cale în director (cu separatorul final) și numele fișierului.

Sintaxă
func Split(path string) (dir, file string)

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 dir din Split ca nume de director și te încurcă /-ul final. Pentru directorul curățat folosește filepath.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).