"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > विंडोज़ में स्टोरेज वॉल्यूम का नाम पुनर्प्राप्त करने के लिए मैं GoLang में GetVolumeInformation फ़ंक्शन का उपयोग कैसे कर सकता हूं?

विंडोज़ में स्टोरेज वॉल्यूम का नाम पुनर्प्राप्त करने के लिए मैं GoLang में GetVolumeInformation फ़ंक्शन का उपयोग कैसे कर सकता हूं?

2024-10-31 को प्रकाशित
ब्राउज़ करें:401

How can I use the GetVolumeInformation function in GoLang to retrieve the name of a storage volume in Windows?

वॉल्यूम नाम प्राप्त करने के लिए GoLang में GetVolumeInformation फ़ंक्शन का उपयोग कैसे करें

विंडोज सिस्टम के साथ काम करते समय, डेवलपर्स को अक्सर ऑपरेटिंग सिस्टम की फाइल सिस्टम के साथ इंटरैक्ट करने की आवश्यकता महसूस होती है और भंडारण मात्रा के बारे में जानकारी पुनः प्राप्त करें। इस उद्देश्य के लिए एक आवश्यक फ़ंक्शन GetVolumeInformation है, जो एक निर्दिष्ट डिस्क वॉल्यूम के बारे में विवरण प्रदान करता है। ]

GoLang में GetVolumeInformation का उपयोग करना

GetVolumeInformation फ़ंक्शन का उपयोग करके वॉल्यूम नाम पुनर्प्राप्त करने के लिए, हमें निम्नलिखित चरणों का पालन करना होगा:

Kernel32 लाइब्रेरी लोड करना:
    सबसे पहले, हमें "kernel32.dll" लाइब्रेरी को लोड करना होगा, जिसमें GetVolumeInformation फ़ंक्शन मौजूद है।
  1. फ़ंक्शन पॉइंटर प्राप्त करना:
  2. कर्नेल32 लाइब्रेरी के भीतर, हम फ़ंक्शन पॉइंटर को पुनः प्राप्त करते हैं GetVolumeInformationW. यह फ़ंक्शन वाइड कैरेक्टर स्ट्रिंग्स (UTF-16) के साथ काम करता है, जो हमें यूनिकोड वर्णों को संभालने की अनुमति देता है।
  3. इनपुट तर्क तैयार करना:
  4. GetVolumeInformation फ़ंक्शन को कई इनपुट तर्कों की आवश्यकता होती है, जैसे रूट पथ उस वॉल्यूम का नाम जिसका हम निरीक्षण करना चाहते हैं। हम वॉल्यूम नाम, सीरियल नंबर, फ़ाइल सिस्टम नाम और अन्य मेटाडेटा प्राप्त करने के लिए बफ़र्स भी बनाते हैं। syscall.Syscall9. यह फ़ंक्शन कई तर्क लेता है और एक स्थिति कोड देता है।
  5. परिणाम को संभालना:
  6. यदि फ़ंक्शन निष्पादन सफल होता है, तो हम वॉल्यूम के बारे में जानकारी तक पहुंच सकते हैं, जिसमें संग्रहीत वॉल्यूम नाम भी शामिल है आवंटित बफ़र। आयात ( "एफएमटी" "सिस्कल" "असुरक्षित" ) func मुख्य() { var lpRootPathName = "C:\\" var lpVolumeNameBuffer = make([]uint16, syscall.MAX_PATH 1) var nVolumeNameSize = uint32(len(lpVolumeNameBuffer)) var lpVolumeSerialNumber uint32 var lpMaximumComponentLength uint32 var lpFileSystemFlags uint32 var lpFileSystemNameBuffer = make([]uint16, 255) var nFileSystemNameSize uint32 = syscall.MAX_PATH 1 कर्नेल32, _ := syscall.LoadLibrary("kernel32.dll") getVolume, _ := syscall.GetProcAddress(kernel32, "GetVolumeInformationW") var nargs uintptr = 8 ret, _, callErr := syscall.Syscall9(uintptr(getVolume), नर्ग्स, uintptr(असुरक्षित.पॉइंटर(syscall.StringToUTF16Ptr(lpRootPathName))), uintptr(असुरक्षित.पॉइंटर(&lpVolumeNameBuffer[0])), uintptr(nVolumeNameSize), uintptr(असुरक्षित.सूचक(&lpVolumeSerialNumber)), uintptr(असुरक्षित.सूचक(&lpMaximumComponentLength)), uintptr(असुरक्षित.पॉइंटर(&lpFileSystemFlags)), uintptr(असुरक्षित.पॉइंटर(&lpFileSystemNameBuffer[0])), uintptr(nFileSystemNameSize), 0) fmt.Println(ret, callErr, syscall.UTF16ToString(lpVolumeNameBuffer)) }
  7. विचार
  8. GetVolumeInformation का उपयोग करते समय याद रखने योग्य एक महत्वपूर्ण पहलू यह है कि यह विस्तृत वर्ण स्ट्रिंग्स (UTF-16) पर काम करता है। परिणामस्वरूप, हमें यह सुनिश्चित करना होगा कि फ़ंक्शन से पास की गई और वापस की गई सभी स्ट्रिंग्स UTF-16 प्रारूप में हैं। ऐसा करने में विफलता से अप्रत्याशित परिणाम हो सकते हैं।
  9. निष्कर्ष
  10. GetVolumeInformation फ़ंक्शन GoLang में स्टोरेज वॉल्यूम के बारे में व्यापक जानकारी प्राप्त करने का एक प्रभावी तरीका प्रदान करता है। इस आलेख में उल्लिखित चरणों का पालन करके, आप अपने एप्लिकेशन की आवश्यकताओं को पूरा करने के लिए वॉल्यूम नाम और अन्य आवश्यक विवरण सफलतापूर्वक प्राप्त कर सकते हैं।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3