बड़ी निर्देशिकाओं में कुशल फ़ाइल लिस्टिंग
बड़ी संख्या में फ़ाइलों के साथ निर्देशिकाओं को प्रोग्रामेटिक रूप से नेविगेट करना प्रदर्शन चुनौतियों का सामना कर सकता है। इन सीमाओं को दूर करने के लिए, गो में अंतर्निहित निर्देशिका पढ़ने के तंत्र को समझना आवश्यक है। ReadDir और filepath.Glob फ़ंक्शंस, जो फ़ाइलों के स्लाइस लौटाते हैं। हालाँकि, अत्यधिक बड़ी निर्देशिकाओं के साथ काम करते समय ये फ़ंक्शन मेमोरी सीमाओं से ग्रस्त होते हैं।
ReadDirnames का उपयोग करने के बजाय, जो बफ़र किए गए सरणियों पर काम करता है, सीधे निम्न-स्तरीय Readdir या Readdirnames विधियों पर विचार करें। ये विधियां 0 से अधिक बैच आकार (एन) के विनिर्देशन की अनुमति देती हैं, जिससे बैचों में निर्देशिका प्रविष्टियों की पुनर्प्राप्ति सक्षम हो जाती है।
नमूना कोडनिम्नलिखित कोड स्निपेट Readdir का उपयोग करके निर्देशिका प्रविष्टियों को पढ़ने का तरीका दर्शाता है:
पैकेज मुख्य आयात ( "एफएमटी" "io/ioutil" "ओएस" ) func मुख्य() { फ़ाइलें, त्रुटि := ioutil.ReadDir("directory_path") यदि त्रुटि !=शून्य { fmt.Println(त्रुटि) वापस करना } _ के लिए, फ़ाइल := श्रेणी फ़ाइलें { fmt.Println(फ़ाइल.नाम()) } }
पर्याप्त बैच आकार (उदाहरण के लिए, 10000) निर्दिष्ट करके, आप मेमोरी समस्याओं का सामना किए बिना बड़ी निर्देशिका लिस्टिंग को कुशलतापूर्वक संसाधित कर सकते हैं।अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3