मैं कोको में एक आवेदन विकसित कर रहा हूं। मैं लगातार जांचना चाहता हूं कि किसी विशेष स्थान में किसी फ़ाइल की सामग्री बदल दी गई है या नहीं (जैसे FileSystemWatcher
.NET में)। कृपया किसी को भी मुझे एक समाधानकोको में फ़ाइल सिस्टम सिस्टम (.NET) के समतुल्य
उत्तर
कृपया FSEvents पर एक नजर है दे।
डिडेरिक कहते हैं, FSEvents प्रणाली घटनाओं दायर करने के लिए सुनने के लिए एप्पल के कार्बन एपीआई है। किसी ने FSEvents के लिए कोको/ऑब्जेक्टिव-सी रैपर बनाया है जिसे SCEvents कहा जाता है जो उपयोग करने में थोड़ा आसान है।
एक पैडेंटिक तरफ के रूप में, FSEvents कार्बन एपीआई नहीं है; यह कोर सेवा ढांचे का हिस्सा है। – briankc
FSEvents बहुत अच्छे हैं, लेकिन इन्हें फ़ोल्डरों की निगरानी करने के लिए उपयोग किया जाता है। एक फ़ाइल की निगरानी करने के लिए आप kqueues को देखना चाहेंगे। टर्मिनल में "मैन kqueue" आज़माएं।
एससीईवींट्स कोको समाधान के लिए खोज रहे किसी के लिए बेहतर विकल्प है। –
FSEvents अभी भी निर्देशिका परिवर्तनों के लिए हैं, और ऐसा लगता है जैसे SCEvents FSEvents के लिए एक रैपर है। प्रश्न एक फ़ाइल की निगरानी करने के लिए पूछता है। Kqueues इसके लिए बहुत बेहतर अनुकूल हैं। उपरोक्त एससीईवींट्स का लिंक यूकेकेक्यूयू का भी संदर्भ देता है, जो कि एक अच्छा रैपर भी हो सकता है। –
एक और विकल्प सीधे/dev/fsevents firehose से पीना होगा। मैं एक ऐसे एप्लिकेशन पर काम करता हूं जो वास्तव में करता है और यह बहुत अच्छी तरह से काम करता है। यदि फ़ाइल बदलती है, हटा दी जाती है, तो स्थानांतरित हो जाता है, गुण बदल जाते हैं, इत्यादि को अधिसूचित किया जा सकता है। माना जाता है कि यह "कोको" विकल्प नहीं है क्योंकि यह ज्यादातर सी कोड है, लेकिन हम इसे कोको ऐप में उपयोग कर रहे हैं।
kqueues पर एक और संसाधन NSWorkspace वर्ग प्रलेखन पर http://developer.apple.com/documentation/Darwin/Conceptual/FSEvents_ProgGuide/KernelQueues/KernelQueues.html
देखो है।
यहाँ कैसे बुकमार्क और NSFileManager साथ यह करने के लिए इतना है कि आप फ़ाइल अगर यह ले जाया जाता है अनुसरण कर सकते हैं का एक उदाहरण है।
बस एक सुझाव: "मुझे एक समाधान दे" अंग्रेजी में थोड़ा घर्षण से आ रही के रूप में व्याख्या की जा सकती, और यह भी संकेत मिलता है कि आप खुद के लिए एक जवाब के लिए देखा नहीं किया होगा। प्रश्न पोस्ट करने से पहले Google के लिए यह अच्छा फॉर्म है। :-) –