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
ToSlashsă 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).