Ce face filepath.IsAbs
Pe Linux și macOS, o cale este absolută dacă începe cu /. Pe Windows trebuie să aibă literă de disc și separator (C:\\date) sau să fie o cale de rețea (\\\\server\\share); \\date fără literă nu este considerată absolută.
Funcția verifică doar textul; nu contează dacă fișierul există.
Parametri
| Parametru | Descriere |
|---|---|
path |
Calea de verificat. |
Ce returnează
true pentru căi absolute, altfel false.
Exemple
Exemplul 1: Absolute și relative
Rezultate pe Linux/macOS.
package main
import (
"fmt"
"path/filepath"
)
func main() {
for _, c := range []string{"/etc/hosts", "date/note.txt", "./script.sh", "~/poze", `C:\Users\ana`} {
fmt.Printf("%-16q %v\n", c, filepath.IsAbs(c))
}
}
Rezultat
"/etc/hosts" true
"date/note.txt" false
"./script.sh" false
"~/poze" false
"C:\\Users\\ana" false
Exemplul 2: Cale relativă la directorul aplicației
package main
import (
"fmt"
"path/filepath"
)
func rezolva(baza, cale string) string {
if filepath.IsAbs(cale) {
return cale
}
return filepath.Join(baza, cale)
}
func main() {
fmt.Println(rezolva("/opt/magazin", "sabloane/email.html"))
fmt.Println(rezolva("/opt/magazin", "/etc/magazin/setari.json"))
}
Rezultat
/opt/magazin/sabloane/email.html
/etc/magazin/setari.json
Greșeli frecvente
- Crezi că
~/pozeeste o cale absolută. Tilda este înlocuită doar de shell; în Go este un director numit~.
Comenzi înrudite
filepath.Abs: Transformă o cale relativă în cale absolută, pornind de la directorul curent.filepath.IsLocal: Spune dacă o cale rămâne în interiorul directorului curent: nu e absolută, nu e goală și nu urcă cu „..”.filepath.VolumeName: Returnează partea de volum (litera de disc sau serverul de rețea) de la începutul unei căi Windows.