Obtenir de l'espace disque libre dans Go
Trouver la quantité d'espace disque libre est une tâche courante dans l'administration système. Dans Go, vous pouvez récupérer ces informations à l'aide des fonctions appropriées en fonction du système d'exploitation que vous utilisez.
Systèmes POSIX
Sur les systèmes POSIX, vous pouvez utiliser le sys Fonction .unix.Statfs. Cette fonction prend le chemin d'accès à un fichier ou à un répertoire comme argument et renvoie une structure unix.Statfs_t. Le champ Bavail de cette structure représente le nombre de blocs disponibles sur le système de fichiers, tandis que le champ Bsize représente la taille de chaque bloc en octets. Pour calculer l'espace libre en octets, multipliez ces deux valeurs.
Par exemple, pour imprimer l'espace libre en octets du répertoire de travail actuel :
import ( "fmt" "golang.org/x/sys/unix" "os" ) func main() { var stat unix.Statfs_t wd, err := os.Getwd() if err != nil { panic(err) } if err := unix.Statfs(wd, &stat); err != nil { panic(err) } freeSpace := stat.Bavail * uint64(stat.Bsize) fmt.Println(freeSpace) }
Windows
Sous Windows, vous pouvez utiliser le package syscall. Ce package donne accès à l'API Windows, qui inclut la fonction GetDiskFreeSpaceEx. Cette fonction prend le chemin d'accès à un lecteur comme argument et renvoie les octets libres disponibles, le nombre total d'octets et le nombre total d'octets libres.
Par exemple, pour obtenir l'espace libre en octets sur le C: drive :
import ( "fmt" "golang.org/x/sys/windows" ) func main() { var freeBytesAvailable uint64 var totalNumberOfBytes uint64 var totalNumberOfFreeBytes uint64 err := windows.GetDiskFreeSpaceEx(windows.StringToUTF16Ptr("C:"), &freeBytesAvailable, &totalNumberOfBytes, &totalNumberOfFreeBytes) if err != nil { panic(err) } fmt.Println(freeBytesAvailable) }
Package multiplateforme
Si vous avez besoin d'un multiplateforme solution, vous pouvez créer un package qui fournit les fonctionnalités pour les systèmes POSIX et Windows. L'outil de construction de Go vous permet de spécifier différents comportements en fonction du système d'exploitation pour lequel vous construisez.
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!