Maison > développement back-end > Golang > le corps du texte

Comment obtenir la taille totale d'un lecteur Windows avec Go ?

Linda Hamilton
Libérer: 2024-11-19 10:59:02
original
525 Les gens l'ont consulté

How to Get the Total Size of a Windows Drive in Go?

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 :

  • Octets libres disponibles pour l'appelant
  • Nombre total d'octets (taille du disque)
  • Nombre total d'octets libres

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)
}
Copier après la connexion

L'exécution de ce code produit un résultat tel que :

1 0 Success.
Free: 16795295744 Total: 145545281536 Available: 16795295744
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal