मैं फ़ाइलों को बदलने के लिए निर्देशिका (हजारों फ़ाइलों में से, 5 निर्देशिकाओं के साथ) की निगरानी करना चाहता हूं। मुझे पता है कि जब मैं उस निर्देशिका के अंदर फ़ाइलों को बदलता हूं, तो निर्देशिका को मॉनिटर करने के लिए मैं FSEvents API का उपयोग कर सकता हूं, लेकिन मुझे यह पता लगाना प्रतीत नहीं होता कि यह निर्धारित करने के लिए कि कौन सी फाइलें बदली गई हैं। This संदर्भ से पता चलता है कि मैं एक बाइनरी पेड़ का निर्माण करता हूं और प्रत्येक बार ट्रिगर होने पर पेड़ को पार करता हूं, यह है कि सर्वोत्तम यह निर्धारित करने के लिए कि कौन सी फाइलें बदली गईं? यदि नहीं, तो बेहतर विकल्प क्या हैं?फ़ाइल परिवर्तनों के लिए निर्देशिका देखें
क्या यह निर्देशिका को फिर से स्कैन करना और प्रत्येक फ़ाइल में kqueue संलग्न करना बेहतर है? मुझे यकीन नहीं है कि यह हजारों फाइलों पर कितना अच्छा काम करेगा?
जेसी, क्या आपने अभी तक कुछ फ़ोल्डर की निगरानी लागू करने के लिए NSFileCoordinator/NSFilePresenter का उपयोग करने का प्रयास किया है? मैं इस समाधान को काम करने में सक्षम नहीं था-यह मुझे किसी भी घटना के बारे में सूचित नहीं करता है। –
@ डेव न्यूमैन एनएसफ़ाइलकॉर्डिनेटर केवल तभी काम करता है जब परिवर्तन करने वाला प्रोग्राम इसका उपयोग कर रहा हो। (यानी यह एक ऑप्ट-इन एपीआई है) अधिकांश कोको कार्यक्रम यह करेंगे; क्या आप निम्न स्तर वाले एपीआई द्वारा किए जा रहे परिवर्तनों को देख रहे हैं? –
मुझे समझ में नहीं आता है। उदाहरण के लिए, मैंने अपने फ़ोल्डर के लिए एक फ़ाइल प्रस्तुतकर्ता बनाया है, कहें, '/ उपयोगकर्ता/डेव/माईफोल्डर'। अब जब मैं इस निर्देशिका में फ़ाइलों को खींचता हूं (ड्रैग और ड्रॉप), केवल 'प्रस्तुत सबमिट किया गया है DidChangeAtURL:' विधि सिस्टम द्वारा बुलाया जा रहा है, लेकिन 'सबमिट नहीं किया गया है सबमिट करें AbidemDidAppearAtURL: '। जब मैं खोजक में कुछ फाइलों को हटाता हूं तो यह 'accommodatePresentedSubitemDeletionAtURL' को भी कॉल नहीं करता है। क्या मैं कुछ भूल गया? –