Calcul de la taille totale d'un lecteur dans Go sous Windows
Pour obtenir la taille totale d'un lecteur spécifique dans Go sous Windows, le L'appel API Windows standard à utiliser est GetDiskFreeSpaceExW() à partir de kernel32.dll. Cette fonction récupère l'espace libre disponible pour l'appelant, ainsi que le nombre total d'octets sur le disque et le nombre total d'octets libres.
En fournissant des pointeurs pour chaque information requise, la fonction GetDiskFreeSpaceExW() peut être utilisé pour récupérer la taille totale d'un lecteur.
Voici un exemple de code démontrant son utilisation :
import ( "syscall" "unsafe" "fmt" ) func main() { kernelDLL, _ := syscall.LoadDLL("kernel32.dll") GetDiskFreeSpaceExW, _ := kernelDLL.FindProc("GetDiskFreeSpaceExW") var free int64 var total int64 var avail int64 path := "c:\" r1, r2, lastErr := GetDiskFreeSpaceExW.Call( uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(path))), uintptr(unsafe.Pointer(&free)), uintptr(unsafe.Pointer(&total)), uintptr(unsafe.Pointer(&avail)), ) fmt.Println(r1, r2, lastErr) fmt.Println("Free:", free, "Total:", total, "Available:", avail) }
L'exécution du code ci-dessus générera une sortie similaire à :
1 0 Success. Free: 16795295744 Total: 145545281536 Available: 16795295744
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!