Erhalten einer Liste von Laufwerken unter Windows mit Golang
Suche nach einer effizienteren Möglichkeit, alle Laufwerke auf einem Windows-System nach einem bestimmten zu durchsuchen Dateityp, fragen sich Go-Programmierer möglicherweise, ob es möglich ist, automatisch eine Liste der verfügbaren Laufwerke ohne benutzerspezifische Eingaben zu erhalten.
Lösung mit GetLogicalDrives und Bit-Manipulation:
Zu Um die Laufwerke auf einem Windows-System aufzulisten, kann man die Funktion „GetLogicalDrives“ nutzen. Diese Funktion gibt eine Bitmaske zurück, wobei jedes Bit die Verfügbarkeit eines Laufwerksbuchstabens von „A“ bis „Z“ darstellt.
Hier ist ein Golang-Codeausschnitt, der den Prozess demonstriert:
<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>
In diesem Code wird die Funktion „GetLogicalDrives“ aufgerufen, um die Bitmaske abzurufen. Die Bitmaske wird dann mithilfe von Bitmanipulationstechniken verarbeitet, um die verfügbaren Laufwerksbuchstaben zu extrahieren und sie im Laufwerks-Slice zu speichern. Durch das Durchlaufen dieses Slice können Sie problemlos auf alle verfügbaren Laufwerke im System zugreifen und diese verarbeiten.
Das obige ist der detaillierte Inhalt vonWie kann ich mit Golang effizient eine Liste der verfügbaren Laufwerke in Windows abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!