30 lines
636 B
Go
30 lines
636 B
Go
//go:build windows
|
|
|
|
package file
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/yusufpapurcu/wmi"
|
|
"strings"
|
|
)
|
|
|
|
func getVolumeName(device string) (string, error) {
|
|
var volumes []Win32_Volume
|
|
query := "SELECT Name, Label FROM Win32_Volume WHERE DriveType = 3" // DriveType = 3 表示磁盘分区
|
|
|
|
err := wmi.Query(query, &volumes)
|
|
if err != nil {
|
|
fmt.Println("Failed to query Win32_Volume:", err)
|
|
return device, err
|
|
}
|
|
|
|
for _, volume := range volumes {
|
|
// fmt.Println("Name:", volume.Name, "Label:", volume.Label)
|
|
if strings.ToLower(volume.Name[:2]) == strings.ToLower(device[:2]) {
|
|
return volume.Label, nil
|
|
}
|
|
}
|
|
|
|
return device, nil
|
|
}
|