Récupération de la taille totale d'un lecteur dans Go sous Windows
Au cours d'efforts précédents, vous avez réussi à déterminer l'espace libre disponible sur un lecteur. En vous appuyant sur ces connaissances, vous cherchez maintenant à récupérer la taille totale d'un lecteur spécifique, tel que "C:."
Pour répondre à cette requête, la fonction API Windows GetDiskFreeSpaceExW() du kernel32.dll peut être employé. Cette fonction nécessite un paramètre d'entrée (le chemin du lecteur) et fournit trois paramètres de sortie :
En allouant des variables pour les informations que vous souhaitez obtenir, vous pouvez utiliser la fonction GetDiskFreeSpaceExW(). Voici un exemple d'implémentation :
import ( "syscall" "unsafe" "fmt" ) func main() { kernelDLL, err := syscall.LoadDLL("kernel32.dll") if err != nil { panic(err) } getDiskFreeSpaceExW, err := kernelDLL.FindProc("GetDiskFreeSpaceExW") if err != nil { panic(err) } var free, total, 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 de ce code produit un résultat tel que :
1 0 Success. Free: 16795295744 Total: 145545281536 Available: 16795295744
Ces informations fournissent une vue complète de l'utilisation et de la capacité du disque.
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!