Maison > développement back-end > Golang > Comment obtenir une liste de tous les lecteurs sur un système Windows à l'aide de Go ?

Comment obtenir une liste de tous les lecteurs sur un système Windows à l'aide de Go ?

Barbara Streisand
Libérer: 2024-10-28 19:43:02
original
317 Les gens l'ont consulté

How to Get a Listing of All Drives on a Windows System Using Go?

Obtenir la liste des lecteurs sous Windows à l'aide de Go

Pour rechercher automatiquement des fichiers sur tous les lecteurs d'un système Windows, il est nécessaire de récupérer une liste de tous les lecteurs utilisant Go. Le langage de programmation Go fournit des fonctions d'interaction avec l'API Windows, permettant l'énumération des lecteurs logiques.

Solution

La solution consiste à appeler la fonction GetLogicalDrives depuis le noyau32. bibliothèque dll. Cette fonction renvoie une bitmap indiquant les lecteurs disponibles. En traitant ce bitmap, nous pouvons obtenir les lettres de lecteur correspondant aux lecteurs disponibles :

<code class="go">import (
    "fmt"
    "syscall"
)

func main() {

    kernel32, _ := syscall.LoadLibrary("kernel32.dll")
    getLogicalDrivesHandle, _ := syscall.GetProcAddress(kernel32, "GetLogicalDrives")

    var drives []string

    if ret, _, callErr := syscall.Syscall(uintptr(getLogicalDrivesHandle), 0, 0, 0, 0); callErr != 0 {
        // handle error
    } else {
        drives = bitsToDrives(uint32(ret))
    }

    fmt.Printf("%v", drives)

}

func bitsToDrives(bitMap uint32) (drives []string) {
    availableDrives := []string{"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}

    for i := range availableDrives {
        if bitMap&amp;1 == 1 {
            drives = append(drives, availableDrives[i])
        }
        bitMap >>= 1
    }

    return
}</code>
Copier après la connexion

La fonction bitsToDrives convertit le bitmap en un tableau de lettres de lecteur, et la fonction principale appelle fmt.Printf( ) pour imprimer la liste des lecteurs. Ce code vous permet de rechercher dynamiquement des fichiers sur tous les lecteurs disponibles sans nécessiter la saisie par l'utilisateur des lettres de lecteur.

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