„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich mit Golang effizient eine Liste der verfügbaren Laufwerke in Windows abrufen?

Wie kann ich mit Golang effizient eine Liste der verfügbaren Laufwerke in Windows abrufen?

Veröffentlicht am 08.11.2024
Durchsuche:920

How Can I Efficiently Get a List of Available Drives in Windows Using Golang?

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 benutzerdefinierte Eingabe 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:

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
}

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.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3