पुनरावर्ती संरचनाओं के साथ समस्याओं को हल करने के लिए पुनरावर्ती विधियां कुशल हैं। पूर्ववर्ती उदाहरणों को पुनरावर्तन का उपयोग किए बिना आसानी से हल किया जा सकता है। यह अनुभाग एक ऐसी समस्या प्रस्तुत करता है जिसे रिकर्सन का उपयोग किए बिना हल करना मुश्किल है। समस्या किसी निर्देशिका का आकार ज्ञात करने की है। किसी निर्देशिका का आकार निर्देशिका की सभी फ़ाइलों के आकार का योग होता है। एक निर्देशिका d में उपनिर्देशिकाएँ हो सकती हैं। मान लीजिए कि एक निर्देशिका में फ़ाइलें f1, f2, ..., fm और उपनिर्देशिकाएँ d1, d2, ..., dn हैं, जैसा कि नीचे चित्र में दिखाया गया है।
निर्देशिका का आकार निम्नानुसार पुनरावर्ती रूप से परिभाषित किया जा सकता है:
आकार(डी) = आकार(एफ1) आकार(एफ2) ... आकार(एफएम) आकार(डी1) आकार(डी2) ...आकार(डीएन)
फ़ाइल वर्ग का उपयोग किसी फ़ाइल या निर्देशिका का प्रतिनिधित्व करने और फ़ाइलों और निर्देशिकाओं के लिए गुण प्राप्त करने के लिए किया जा सकता है। फ़ाइल वर्ग में दो विधियाँ इस समस्या के लिए उपयोगी हैं:
नीचे दिया गया कोड एक प्रोग्राम देता है जो उपयोगकर्ता को एक निर्देशिका या फ़ाइल दर्ज करने के लिए प्रेरित करता है और उसका आकार प्रदर्शित करता है।
यदि फ़ाइल ऑब्जेक्ट एक निर्देशिका (पंक्ति 20) का प्रतिनिधित्व करता है, तो निर्देशिका में प्रत्येक उप-आइटम (फ़ाइल या उपनिर्देशिका) को उसका आकार (पंक्ति 23) प्राप्त करने के लिए पुनरावर्ती रूप से लागू किया जाता है। यदि फ़ाइल ऑब्जेक्ट एक फ़ाइल (पंक्ति 26) का प्रतिनिधित्व करता है, तो फ़ाइल का आकार प्राप्त किया जाता है और कुल आकार (पंक्ति 27) में जोड़ा जाता है।
यदि कोई गलत या अस्तित्वहीन निर्देशिका दर्ज की जाती है तो क्या होता है? प्रोग्राम पता लगाएगा कि यह एक निर्देशिका नहीं है और file.length() (पंक्ति 27) को आमंत्रित करेगा, जो 0 लौटाता है। इस प्रकार, इस मामले में, getSize विधि 0 वापस आ जाएगी।
गलतियों से बचने के लिए, सभी मामलों का परीक्षण करना एक अच्छा अभ्यास है। उदाहरण के लिए, आपको फ़ाइल के इनपुट, एक खाली निर्देशिका, एक अस्तित्वहीन निर्देशिका और एक अस्तित्वहीन फ़ाइल के लिए प्रोग्राम का परीक्षण करना चाहिए।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3