Maison >développement back-end >Golang >Comment obtenir la taille totale d'un lecteur Windows à l'aide de Go ?

Comment obtenir la taille totale d'un lecteur Windows à l'aide de Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-27 16:02:10858parcourir

How to Get a Windows Drive's Total Size Using Go?

Interroger la taille totale du lecteur sous Windows à l'aide de Go

L'obtention de la taille totale d'un lecteur est cruciale pour diverses applications. Cet article montre comment récupérer ces informations à l'aide de l'appel API Windows standard dans Go.

Comme mentionné précédemment, la fonction GetDiskFreeSpaceExW() de kernel32.dll peut être utilisée. Il prend un chemin de répertoire en entrée et fournit trois paramètres de sortie :

  • lpFreeBytesAvailableToCaller : octets libres accessibles à l'appelant
  • lpTotalNumberOfBytes : taille totale du disque
  • lpTotalNumberOfFreeBytes : inutilisé espace sur le disque

Pour utiliser cette fonction, allouez des variables pour la sortie souhaitée :

import "syscall"

kernelDLL := syscall.MustLoadDLL("kernel32.dll")
GetDiskFreeSpaceExW := kernelDLL.MustFindProc("GetDiskFreeSpaceExW")

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)),
)

Exemple de sortie :

Free: 16795295744 Total: 145545281536 Available: 16795295744

Cette technique vous permet de déterminer avec précision la taille totale de tout lecteur spécifié à l'aide de l'API Windows.

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!

Déclaration:
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