इंटरनेट पर कई पोस्ट हैं जहां ReadDirectoryChangesW API फ़ंक्शन अनुपलब्ध फ़ाइलें हैं जब बहुत सारी फ़ाइल गतिविधि होती है। अधिकांश गति उस पर दोष देते हैं जिस पर ReadDirectoryChangesW फ़ंक्शन लूप कहा जाता है। यह एक गलत धारणा है। सबसे अच्छा विवरण मैंने देखा है, निम्नलिखित पोस्ट में सोमवार, 14 अप्रैल को टिप्पणी, 2008 14:15:27गायब फ़ाइल परिवर्तनों से ReadDirectoryChangesW को कैसे रखें
http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/4465cafb-f4ed-434f-89d8-c85ced6ffaa8/
सारांश यह है कि ReadDirectoryChangesW समारोह रिपोर्ट परिवर्तन फ़ाइल के रूप में वे छोड़ दें फाइल-राइट-पीछे कतार, जैसा कि वे जोड़े गए हैं। और यदि प्रतिबद्ध होने से पहले बहुत से जोड़े गए हैं, तो आप उनमें से कुछ पर नोटिस खो देते हैं। यदि आप निर्देशिका में 1000+ फ़ाइलों को वास्तविक त्वरित उत्पन्न करने के लिए केवल एक प्रोग्राम लिखते हैं, तो आप इसे अपने कार्यान्वयन के साथ देख सकते हैं। बस गिनें कि आपको कितनी फाइल इवेंट नोटिस मिलती है और आप देखेंगे कि ऐसे समय होते हैं जब आप उन सभी को प्राप्त नहीं करेंगे।
सवाल यह है कि, क्या किसी को भी हर बार वॉल्यूम फ्लश किए बिना ReadDirectoryChangesW फ़ंक्शन का उपयोग करने के लिए एक विश्वसनीय विधि मिली है? यदि उपयोगकर्ता प्रशासक नहीं है और इसे पूरा करने में कुछ समय लग सकता है तो इसकी अनुमति नहीं है।
यह लगभग 99% समय के लिए काम करेगा। क्या होता है यदि किसी अन्य निर्देशिका में एक फ़ाइल (अन्यथा जिसमें बहुत से फ़ाइल में परिवर्तन होता है) वह छोड़ दिया जाता है। आप परिवर्तनों के लिए एक निर्देशिका को स्कैन करेंगे लेकिन किसी अन्य फ़ाइल में बदलाव को याद करेंगे। –
FileSystemWatcher क्लास ReadDirectoryChangesW को लपेटने के लिए एक .NET तरीका है, इसलिए नहीं, इससे मदद नहीं मिलती है। – Garen
मेरा उत्तर ReadDirectoryChangesW के वर्कअराउंड को ट्रिगर करने के लिए समय अवधि के भीतर # घटनाओं का पता लगाने के बारे में अधिक था। – hova