filepath.VolumeName în Go

Returnează partea de volum (litera de disc sau serverul de rețea) de la începutul unei căi Windows.

Sintaxă
func VolumeName(path string) string

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 VolumeName să 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 „/”.