Heim > Backend-Entwicklung > Golang > Wie liste ich mit Go alle verfügbaren Laufwerke in Windows auf?

Wie liste ich mit Go alle verfügbaren Laufwerke in Windows auf?

Mary-Kate Olsen
Freigeben: 2024-10-29 21:15:30
Original
410 Leute haben es durchsucht

How do I list all available drives in Windows using Go?

So listen Sie alle Laufwerke unter Windows mit Go auf

Programme erfordern häufig die Fähigkeit, mit verschiedenen Laufwerken in einem System zu interagieren, beispielsweise durch Suchen für einen bestimmten Dateityp. Es ist zwar möglich, den Laufwerksbuchstaben manuell anzugeben, bequemer und effizienter ist es jedoch, alle Laufwerke automatisch aufzulisten. In Go kann dies durch die Nutzung der Funktion „GetLogicalDrives“ erreicht werden.

Liste der Laufwerke abrufen

Die Funktion „GetLogicalDrives“ gibt eine Bitmap zurück, die alle verfügbaren Laufwerke darstellt. Jedes Bit entspricht einem Laufwerksbuchstaben.

<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>
Nach dem Login kopieren

Die Funktion bitsToDrives() konvertiert die Bitmap in ein String-Array von Laufwerksbuchstaben.

Iterieren durch die Laufwerke

Sobald die Liste der Laufwerke abgerufen wurde, können Sie sie durchlaufen, um alle gewünschten Aktionen auszuführen, z. B. die Suche nach Dateien.

Wenn Sie diese Schritte mit Go ausführen, können Sie effizient eine erhalten Listen Sie alle Laufwerke unter Windows auf und führen Sie bei Bedarf Vorgänge auf ihnen aus.

Das obige ist der detaillierte Inhalt vonWie liste ich mit Go alle verfügbaren Laufwerke in Windows auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage