Comment répertorier tous les lecteurs sous Windows à l'aide de Go
Les programmes nécessitent souvent la possibilité d'interagir avec différents lecteurs d'un système, comme la recherche pour un type de fichier particulier. Bien qu'il soit possible de spécifier la lettre du lecteur manuellement, il est plus pratique et efficace de répertorier automatiquement tous les lecteurs. Dans Go, cela peut être réalisé en tirant parti de la fonction GetLogicalDrives.
Obtention de la liste des lecteurs
La fonction GetLogicalDrives renvoie une carte binaire représentant tous les lecteurs disponibles. Chaque bit correspond à une lettre de lecteur.
<code class="go">package main 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 & 1 == 1 { drives = append(drives, availableDrives[i]) } bitMap >>= 1 } return }</code>
La fonction bitsToDrives() convertit le bitmap en un tableau de chaînes de lettres de lecteur.
Itération à travers les lecteurs
Une fois la liste des lecteurs obtenue, vous pouvez les parcourir pour effectuer toutes les actions souhaitées, comme la recherche de fichiers.
En suivant ces étapes à l'aide de Go, vous pouvez obtenir efficacement un liste de tous les lecteurs sous Windows et effectuez des opérations sur eux si nécessaire.
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!