Comment puis-je obtenir une liste de tous les lecteurs sous Windows à l'aide de golang?


roartechs:

Je voudrais que mon programme itère sur tous les lecteurs d'un système Windows et recherche un type de fichier particulier. À l'heure actuelle, je peux exécuter le programme et lui transmettre une lettre de lecteur pour commencer, mais je veux qu'il recherche automatiquement sur tous les lecteurs. Actuellement, j'aurais besoin de faire quelque chose comme ceci:

C:\> program.exe C:
C:\> program.exe D:
C:\> program.exe E:

Je veux que le programme obtienne une liste de tous les lecteurs et les répète tous sans que l'utilisateur n'ait à spécifier la lettre du lecteur. Est-ce possible avec Go?

Similaire à cette question Liste de tous les disques physiques (Windows) mais en utilisant Go au lieu de C.

Hinogary:

Le moyen le plus simple est d'écrire sa propre fonction en essayant d'ouvrir le dossier «lecteur» mentionné par Volker.

import "os"

func getdrives() (r []string){
    for _, drive := range "ABCDEFGHIJKLMNOPQRSTUVWXYZ"{
        f, err := os.Open(string(drive)+":\\")
        if err == nil {
            r = append(r, string(drive))
            f.Close()
        }
    }
    return
}

Articles connexes