गोलांग का उपयोग करके विंडोज़ पर ड्राइव की एक सूची प्राप्त करना
किसी विशिष्ट के लिए विंडोज़ सिस्टम पर सभी ड्राइव्स में खोज करने का अधिक कुशल तरीका खोजना फ़ाइल प्रकार, गो प्रोग्रामर आश्चर्यचकित हो सकते हैं कि क्या उपयोगकर्ता द्वारा निर्दिष्ट इनपुट के बिना स्वचालित रूप से उपलब्ध ड्राइव की सूची प्राप्त करना संभव है।
GetLogicalDrives और Bit Manipulation का उपयोग करके समाधान:
To विंडोज़ सिस्टम पर ड्राइव को सूचीबद्ध करने के बाद, कोई GetLogicalDrives फ़ंक्शन का लाभ उठा सकता है। यह फ़ंक्शन 'ए' से 'जेड' तक ड्राइव अक्षर की उपलब्धता का प्रतिनिधित्व करने वाले प्रत्येक बिट के साथ एक बिट मास्क देता है।
यहां एक गोलांग कोड स्निपेट है जो प्रक्रिया को प्रदर्शित करता है:
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
}
इस कोड में, बिट मास्क प्राप्त करने के लिए GetLogicalDrives फ़ंक्शन को कॉल किया जाता है। फिर उपलब्ध ड्राइव अक्षरों को निकालने और उन्हें ड्राइव स्लाइस में संग्रहीत करने के लिए बिट मैनिपुलेशन तकनीकों का उपयोग करके बिटमास्क को संसाधित किया जाता है। इस स्लाइस के माध्यम से पुनरावृत्ति करके, आप सिस्टम पर सभी उपलब्ध ड्राइव को आसानी से एक्सेस और प्रोसेस कर सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3