Resolving Paths
Yo'llarni aniqlashtirish
Ba'zan yo'l chalkash bo'lib qoladi — ichida .. ("bir papka yuqoriga") yoki . ("shu joyning o'zi") bo'ladi. filepath.Clean bunday yo'lni soddalashtiradi, filepath.Abs esa nisbiy yo'lni to'liq (absolyut) yo'lga aylantiradi.
package main
import (
"fmt"
"path/filepath"
)
func main() {
messy := "data//users/../users/./profile.json"
fmt.Println(filepath.Clean(messy))
abs, err := filepath.Abs("profile.json")
fmt.Println(err == nil, filepath.IsAbs(abs))
}filepath.Clean ortiqcha /, . va .. larni hal qilib, eng qisqa to'g'ri yo'lni qaytaradi — xuddi xaritada aylanma yo'lni to'g'rilagandek. filepath.Abs esa nisbiy yo'lni joriy papkaga nisbatan to'liq yo'lga aylantiradi; filepath.IsAbs esa berilgan yo'l allaqachon to'liqmi (true) yoki nisbiymi (false) ekanini tekshiradi.
>_ Exercise
Chalkash yo'lni tozalang va uni absolyut yo'l bilan solishtiring.
- •messy yo'lni filepath.Clean bilan tozalab chop eting
- •"config.json" uchun filepath.Abs oling
- •olingan absolyut yo'l filepath.IsAbs bo'yicha true ekanini chop eting
Stuck? Reveal a hint to help you.
Key Takeaway
Key Takeaway:
filepath.Clean chalkash yo'lni soddalashtiradi, filepath.Abs/IsAbs esa yo'lning to'liq ekanini aniqlashtiradi va tekshiradi.
NEXT UP
Reader and Writer Interfaces
$ go run main.go
Kodingizni ishga tushiring