Cara Menyenaraikan Semua Pemacu pada Windows Menggunakan Go
Program selalunya memerlukan keupayaan untuk berinteraksi dengan pemacu yang berbeza pada sistem, seperti mencari untuk jenis fail tertentu. Walaupun mungkin untuk menentukan huruf pemacu secara manual, adalah lebih mudah dan cekap untuk menyenaraikan semua pemacu secara automatik. Dalam Go, ini boleh dicapai dengan memanfaatkan fungsi GetLogicalDrives.
Mendapatkan Senarai Pemacu
Fungsi GetLogicalDrives mengembalikan peta bit yang mewakili semua pemacu yang tersedia. Setiap bit sepadan dengan huruf pemacu.
<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>
Fungsi bitsToDrives() menukar peta bit kepada tatasusunan rentetan huruf pemacu.
Lelaran Melalui Pemacu
Setelah senarai pemacu telah diperoleh, anda boleh mengulanginya untuk melakukan sebarang tindakan yang diingini, seperti mencari fail.
Dengan mengikuti langkah ini menggunakan Go, anda boleh mendapatkan menyenaraikan semua pemacu pada Windows dan melaksanakan operasi padanya mengikut keperluan.
Atas ialah kandungan terperinci Bagaimanakah saya menyenaraikan semua pemacu yang tersedia dalam Windows menggunakan Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!