Go에서 모든 Windows 드라이브에 액세스
Go에서 Windows 시스템에 있는 모든 드라이브의 전체 목록을 검색하려면 특정 접근 방식이 필요합니다. 각 드라이브에 대해 "program.exe C:"와 같은 드라이브 문자를 수동으로 지정하지 않기 위해 동적 솔루션을 모색합니다.
kernel32.dll에서 GetLogicalDrives 기능을 활용하면 다음을 나타내는 비트맵을 얻을 수 있습니다. 사용 가능한 드라이브. bitToDrives 함수는 이 비트맵을 ["A", "B", "C",...]와 같은 해당 드라이브 문자 목록으로 변환합니다.
다음 Go 코드는 이 접근 방식을 보여줍니다.
<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>
이제 이 방법을 사용하면 사용자가 지정한 드라이브 문자에 의존하지 않고 Windows 시스템의 모든 드라이브를 원활하게 반복할 수 있습니다.
위 내용은 Go에서 프로그래밍 방식으로 모든 Windows 드라이브에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!