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

DDD
Freigeben: 2024-10-30 09:36:02
Original
328 Leute haben es durchsucht

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

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!