Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mendapatkan Penyenaraian Semua Pemacu pada Sistem Windows Menggunakan Go?

Bagaimana untuk Mendapatkan Penyenaraian Semua Pemacu pada Sistem Windows Menggunakan Go?

Barbara Streisand
Barbara Streisandasal
2024-10-28 19:43:02224semak imbas

How to Get a Listing of All Drives on a Windows System Using Go?

Mendapatkan Penyenaraian Drive pada Windows Menggunakan Go

Untuk mencari fail secara automatik pada semua pemacu pada sistem Windows, anda perlu mendapatkan semula penyenaraian daripada semua pemacu yang menggunakan Go. Bahasa pengaturcaraan Go menyediakan fungsi untuk berinteraksi dengan API Windows, membenarkan penghitungan pemacu logik.

Penyelesaian

Penyelesaian melibatkan panggilan fungsi GetLogicalDrives daripada kernel32. dll perpustakaan. Fungsi ini mengembalikan peta bit yang menunjukkan pemacu yang tersedia. Dengan memproses peta bit ini, kita boleh mendapatkan huruf pemacu yang sepadan dengan pemacu yang tersedia:

<code class="go">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&amp;1 == 1 {
            drives = append(drives, availableDrives[i])
        }
        bitMap >>= 1
    }

    return
}</code>

Fungsi bitsToDrives menukar peta bit menjadi susunan huruf pemacu, dan fungsi utama memanggil fmt.Printf( ) untuk mencetak senarai pemacu. Kod ini membolehkan anda mencari fail secara dinamik pada semua pemacu yang tersedia tanpa memerlukan input pengguna untuk huruf pemacu.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Penyenaraian Semua Pemacu pada Sistem Windows Menggunakan Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn