मैं एक उपयोगिता अनुप्रयोग बना रहा हूं जो मैक ओएसएक्स के लिए दो सिस्टमों में फ़ाइलों को सिंक्रनाइज़ करता है। मुझे यह पता लगाने की आवश्यकता है कि फ़ाइल का नाम बदल दिया गया है लेकिन अन्यथा एक ही फाइल है। कोको में मैं यह कैसे करूं?मैं कैसे पता लगाता हूं कि कोको का उपयोग करके फ़ाइल का नाम बदल दिया गया है या नहीं?
उत्तर
कोई आसान जवाब नहीं है; आपको अपने ऐप के लिए सबसे अच्छी रणनीति का पता लगाने की जरूरत है।
एक साधारण स्तर पर फ़ाइल सिस्टम संख्या के साथ काम कर रहा है। आप NSFileSystemFileNumber
का उपयोग कर इसे पकड़ सकते हैं। हालांकि नौकरी के लिए शायद बेहतर है FSRef
का उपयोग करना है। यह एक सीपीआई है लेकिन अपेक्षाकृत सीधा है, और समानता के लिए एफएसआरएफ की तुलना करने के लिए एक विधि है।
लेकिन, बहुत सारे अनुप्रयोग हैं जो द्वारा डिस्क पर फ़ाइल को प्रतिस्थापित करने के लिए एक फ़ाइल ऑपरेशन करते हैं, इसकी फ़ाइल संख्या बदलते हैं। यह आपके कोड को बहुत परेशान कर सकता है। तो उपनाम का उपयोग करने पर विचार करें। यह वही सिस्टम है क्योंकि खोजक उपनाम फ़ाइल के लक्ष्य को ट्रैक रखने के लिए उपयोग करता है। या तो उपनाम प्रबंधक (सी एपीआई), या ओपन सोर्स ऑब्जेक्टिव-सी रैपर (उदाहरण के लिए एनडीएलियास या बीडीएलआईएएस) का उपयोग करें। एक उपनाम पथ और फ़ाइल संख्या दोनों द्वारा फ़ाइल के संदर्भ को बनाए रखने के लिए अपना सर्वश्रेष्ठ प्रयास करेगा।
आप एनएसएफइल मैनेजर द्वारा लौटाए गए गुणों में इनोड नंबर (NSFileSystemFileNumber) देख सकते हैं, जिसमें सरल नामकरण मामलों को शामिल किया जाएगा।
अतिरिक्त विवरण के एक जोड़े है कि मैं का सामना करना पड़ा:
तो फ़ाइल केवल नाम बदला है, तो फ़ाइल एक ही inode (NSFileSystemFileNumber) बनी रहेगी।
हालांकि, अगर फ़ाइल संशोधित की गई थी, तो मैक ओएस एक्स आम तौर पर पुरानी फ़ाइल को नई फ़ाइल की एक प्रति के साथ प्रतिस्थापित करेगा, इसलिए इनोड संख्याएं समान नहीं होंगी।
यदि आप टेक्स्ट एडिट में एक टेक्स्ट फ़ाइल संपादित करते हैं और फिर इसे सहेजते हैं, तो आप फ़ाइल गायब होने और फिर खोजक में फिर से दिखाई दे सकते हैं। हालांकि, अगर आप कमांड लाइन एडिटर (vi, pico, emacs, आदि) का उपयोग करके इस फ़ाइल को संपादित करते हैं, तो यह सीधे फ़ाइल में सहेजा जाएगा।
मेरा अनुमान है कि कोको ऐप्स पहले एक temp फ़ाइल में सहेजेंगे, और फिर फ़ाइल के मूल संस्करण को प्रतिस्थापित करेंगे, जो बताता है कि इनोड्स अलग क्यों हैं।
मेरे पास उपर्युक्त समस्या है क्या आप कृपया मुझे वैकल्पिक समाधान बता सकते हैं जब फ़ाइल संशोधित की जाती है तो विशिष्ट रूप से पहचाने जाने के लिए ?? आप इस लिंक से भी एक उत्तर दे सकते हैं: http://stackoverflow.com/questions/30191016/is-there-any-function-to-retrieve-the-path-associated-with-an-nsfilesystemfilenu – jigs
मुझे लगता है कि आप फ़ाइलों की सामग्री पर लक्षित हैं, न कि उनके गुण। हैश की गणना और तुलना करने का सबसे आसान तरीका है। बस ब्लॉक द्वारा ब्लॉक की गई दो फाइलें पढ़ें और हैश की तुलना करें, ई। जी। इन MD5 दिनचर्या के साथ।
ऊपर वर्णित सब कुछ विफल हो जाएगा यदि आपके पास विभिन्न प्लेटफ़ॉर्म/ओएस पर स्रोत और गंतव्य है। सबसे अच्छा तरीका नई फाइलों की सूची प्राप्त करना और स्रोत और गंतव्य स्थानों दोनों में फ़ाइलों को गुम करना है और फिर यदि किसी भी दो फाइलों का आकार समान है? यदि उनके पास समान आकार है तो चेकसम/सीआरसी की तुलना करें और यदि यह समान है, तो उनमें से एक का नाम बदल दिया गया है।
- 1. प्रोजेक्ट फ़ाइल '' का नाम बदल दिया गया है या अब समाधान में नहीं है
- 2. सिस्टम का समय बदल गया है या नहीं, मैं कैसे पता लगा सकता हूं? (.net से)
- 3. टेक्स्टव्यू का टेक्स्ट बदल दिया गया है या नहीं पता लगाने का सबसे अच्छा तरीका?
- 4. मैं कैसे देख सकता हूं कि दिया गया उपयोगकर्ता नाम मौजूद है या नहीं?
- 5. मुझे कैसे पता चलेगा कि एक संपादन योग्य JComboBox का पाठ बदल दिया गया है?
- 6. PHP पता लगाता है कि खोज दिनांक है या नहीं
- 7. मैं कैसे जांच सकता हूं कि छवि का दिया गया यूआरएल जीडब्ल्यूटी का उपयोग कर मौजूद है या नहीं?
- 8. सी # कैसे पता चलेगा कि दिया गया पथ रूट ड्राइव का प्रतिनिधित्व करता है या नहीं?
- 9. मैं ASP.NET में फ़ाइल का नाम कैसे बदल सकता हूं?
- 10. JQuery का उपयोग करके, आप कैसे पता लगाते हैं कि फ़ील्ड इनपुट का मूल्य बदल गया है, जबकि फ़ील्ड इनपुट का मूल्य बदल गया है?
- 11. एक चर बदल गया है या नहीं पता कैसे?
- 12. PowerShell का उपयोग करके मैं फ़ाइलों का नाम बदल सकता हूं?
- 13. पता लगाएं कि आउटगोइंग कॉल का उत्तर दिया गया है
- 14. विजुअल स्टूडियो यह पता लगाता है कि हॉटकी को क्या आदेश दिया गया है
- 15. मैं कैसे बता सकता हूं कि मैन्युअल रीसेट इवेंट को संकेत दिया गया है या संकेत नहीं दिया गया है?
- 16. मैं कैसे बता सकता हूं कि बंद पथ में कोई दिया गया बिंदु है या नहीं?
- 17. पीएचपी कैसे पता लगाता है कि एक सत्र का समय समाप्त हो गया है?
- 18. कैसे पता चले कि उपयोगकर्ता ने टॉगल बटन बदल दिया है या नहीं?
- 19. मैं कैसे जांचूं कि दिया गया पाइथन स्ट्रिंग किसी अन्य का एक सबस्ट्रिंग है या नहीं?
- 20. मुझे कैसे पता चलेगा कि RawInput का उपयोग करके शिफ्ट दबाया जाता है या नहीं?
- 21. एमवीसी 4 में SimpleMembership का उपयोग करके मैं पासवर्ड कैसे रीसेट या बदल सकता हूं?
- 22. पता लगाएं कि फ्लैश एप्लिकेशन जावास्क्रिप्ट का उपयोग करके सही ढंग से लोड हो गया है या नहीं?
- 23. एडीबी एंड्रॉइड डिवाइस का पता नहीं लगाता
- 24. कोई कैसे पता लगाता है कि विंडोज सेवा (अधिमानतः) केवल बैच का उपयोग करके स्थापित की जाती है?
- 25. Node.js का उपयोग करके, मैं कैसे जांच सकता हूं कि कोई डोमेन नाम पंजीकृत है या नहीं?
- 26. RegularExpressionValidator खाली तारों का पता नहीं लगाता
- 27. ओपनसीवी समरूप चौराहे का पता लगाता है
- 28. मैं कैसे पता लगा सकता हूं कि बैश में एक सिम्लिंक टूट गया है या नहीं?
- 29. रेक डीबी: माइग्रेट नए माइग्रेशन का पता नहीं लगाता है?
- 30. मैं कैसे पता लगा सकता हूं कि फ़ाइल सिस्टम केस-संवेदी है या नहीं?
अच्छा सवाल है, लेकिन मुझे संदेह है कि एक तरीका है। –
पहले से ही पूछा और उत्तर दिया? http://stackoverflow.com/questions/645321/how-to-dectect-new-or-modified-files-in-mac-osx/645379#645379 –