filepath.FromSlash în Go

FromSlash înlocuiește „/” cu separatorul sistemului; ToSlash face invers, înlocuind separatorul cu „/”.

Sintaxă
func FromSlash(path string) string
func ToSlash(path string) string

Ce face filepath.FromSlash

Pe Windows, FromSlash("a/b/c") dă a\b\c, iar ToSlash("a\\b\\c") dă a/b/c. Pe Linux și macOS separatorul este deja /, deci ambele funcții returnează textul neschimbat.

Folosești ToSlash când salvezi căi într-un format portabil (JSON, URL, arhivă zip, chei de cache) și FromSlash când le transformi înapoi în căi locale. Pentru căi primite din afară, filepath.Localize este mai sigură.

Parametri

Parametru Descriere
path Calea de convertit.

Ce returnează

Calea cu separatorul înlocuit.

Exemple

Exemplul 1: Pe Linux/macOS nu se schimbă nimic

package main

import (
    "fmt"
    "path/filepath"
)

func main() {
    fmt.Println(filepath.FromSlash("site/css/stil.css"))
    fmt.Println(filepath.ToSlash(filepath.Join("site", "js", "app.js")))
}

Rezultat

site/css/stil.css
site/js/app.js

Exemplul 2: Același cod pe Windows

package main

import (
    "fmt"
    "path/filepath"
)

func main() {
    fmt.Println(filepath.FromSlash("site/css/stil.css"))
    fmt.Println(filepath.ToSlash(filepath.Join("site", "js", "app.js")))
}

Rezultat pe Windows

site\css\stil.css
site/js/app.js

Greșeli frecvente

  • Te aștepți ca ToSlash să transforme \ în / pe Linux. Acolo \ este un caracter obișnuit în nume și rămâne neschimbat.

Comenzi înrudite

  • filepath.Localize: Transformă o cale cu „/” (ca în fs.FS sau URL) într-o cale locală a sistemului, refuzând căile nesigure.
  • filepath.Join: Unește mai multe bucăți într-o cale, cu separatorul corect al sistemului, și curăță rezultatul.
  • os.IsPathSeparator: Spune dacă un caracter este separator de cale pe sistemul curent (/ pe Unix, / sau \ pe Windows).