Ce face filepath.VolumeName
Pe Windows, VolumeName("C:\\Users\\ana") dă "C:", iar VolumeName("\\\\server\\share\\dosar") dă "\\\\server\\share". Pe Linux și macOS nu există volume, deci funcția returnează mereu "".
O folosești în cod portabil care trebuie să separe discul de restul căii.
Parametri
| Parametru | Descriere |
|---|---|
path |
Calea. |
Ce returnează
Numele volumului sau "".
Exemple
Exemplul 1: Pe Linux/macOS: mereu gol
package main
import (
"fmt"
"path/filepath"
)
func main() {
for _, c := range []string{"/home/ana", `C:\Users\ana`, "date/note.txt"} {
fmt.Printf("%-16q -> %q\n", c, filepath.VolumeName(c))
}
}
Rezultat
"/home/ana" -> ""
"C:\\Users\\ana" -> ""
"date/note.txt" -> ""
Exemplul 2: Pe Windows
package main
import (
"fmt"
"path/filepath"
)
func main() {
for _, c := range []string{`C:\Users\ana`, `\\server\share\dosar`, `date\note.txt`} {
fmt.Printf("%-24q -> %q\n", c, filepath.VolumeName(c))
}
}
Rezultat pe Windows
"C:\\Users\\ana" -> "C:"
"\\\\server\\share\\dosar" -> "\\\\server\\share"
"date\\note.txt" -> ""
Greșeli frecvente
- Te aștepți ca
VolumeNamesă recunoască o cale Windows într-un program care rulează pe Linux. Funcția lucrează după regulile sistemului curent.
Comenzi înrudite
filepath.IsAbs: Spune dacă o cale este absolută (pornește de la rădăcina sistemului de fișiere).filepath.FromSlash: FromSlash înlocuiește „/” cu separatorul sistemului; ToSlash face invers, înlocuind separatorul cu „/”.