DirectoryStream के प्रलेखन स्पष्ट रूप से एक निर्देशिका की सामग्री को बदलने:पुनरावृत्ति एक DirectoryStream और एक ही समय
इटरेटर दुर्बलता से संगत है। यह थ्रेड सुरक्षित है लेकिन पुनरावृत्ति करते समय निर्देशिका को फ्रीज नहीं करता है, इसलिए यह निर्देशिका ( ) निर्देशिका के बाद होने वाली निर्देशिका के लिए निर्देशिका को अद्यतन कर सकता है (या नहीं)।
मेरी मशीन पर, मैंने डीबग मोड में निर्देशिका पर एक सरल पुनरावृत्ति निष्पादित की। पुनरावृत्ति पूरा होने से पहले, मैंने निष्पादन तोड़ दिया, निर्देशिका में एक फ़ाइल को फिर से शुरू किया गया और फिर से शुरू किया गया। पुनरावृत्ति को अतिरिक्त फ़ाइल दिखाई नहीं दे रही थी।
मेरा प्रश्न: किस परिस्थिति में पुनरावृत्ति निर्देशिका सामग्री के अपडेट को दर्शाता है? दुर्भाग्यवश औपचारिक दस्तावेज इसके बारे में बहुत अस्पष्ट है। कम से कम कहने के लिए।
मुझे नहीं पता, लेकिन जिस तरह से मैंने इसे पढ़ा है, यह नोडेटर्मेनिस्टिक है, और अंतर्निहित ओएस/एफएस और विशिष्ट कार्यान्वयन पर निर्भर हो सकता है। मेरा सबसे अच्छा अनुमान यह है कि यह अपडेट को प्रतिबिंबित करेगा यदि आपकी निर्देशिका एक इनोड पर है जो बाद में पेड़ में स्थित है, तो इटेटरेटर इंगित कर रहा है। इस व्यवहार को कैसे उत्तेजित करें मुझे नहीं पता। मुझे यह कहते हुए विश्वास है कि यह शुद्ध जावा का उपयोग कर तुरंत (संभवतः एक निर्धारक तरीके से) नहीं है। –