Files and Directories
Path Join and Clean
path.Join and path.Clean build predictable slash-separated paths from pieces.
Path Join and Clean
path_join_clean.go
package main
import (
"fmt"
"path"
)
func main() {
var folder =
joined := path.Join("data", folder, "today.txt")
messy := "data/" + folder + "/../" + folder + "/today.txt"
cleaned := path.Clean(messy)
fmt.Println("folder=", folder)
fmt.Println("joined=", joined)
fmt.Println("cleaned=", cleaned)
fmt.Println("same=", joined == cleaned)
}
package main
import (
"fmt"
"path"
)
func main() {
var folder =
joined := path.Join("data", folder, "today.txt")
messy := "data/" + folder + "/../" + folder + "/today.txt"
cleaned := path.Clean(messy)
fmt.Println("folder=", folder)
fmt.Println("joined=", joined)
fmt.Println("cleaned=", cleaned)
fmt.Println("same=", joined == cleaned)
}
package main
import (
"fmt"
"path"
)
func main() {
var folder =
joined := path.Join("data", folder, "today.txt")
messy := "data/" + folder + "/../" + folder + "/today.txt"
cleaned := path.Clean(messy)
fmt.Println("folder=", folder)
fmt.Println("joined=", joined)
fmt.Println("cleaned=", cleaned)
fmt.Println("same=", joined == cleaned)
}
path handling
Path helpers avoid hand-building separators and normalize redundant path pieces.