2011-06-11 12 views
7

मैंने अभी जावा 7, निर्देशिका निरीक्षक के साथ एक शानदार सुविधा देखी है। यह आपको बताएगा कि निर्देशिका में मतदान किए बिना किसी निर्देशिका में कुछ बदल गया है।जावा 7 निर्देशिका निगरानी प्रश्न

1.) लेकिन यह कहता है कि अगर फाइल सिस्टम परिवर्तन घटनाओं के लिए पंजीकरण का समर्थन नहीं करता है तो यह मतदान पर वापस आ जाता है। सभी विशिष्ट लिनक्स और विंडोज फाइल सिस्टम (extX, ntfs, reiserXXX, jsf, zfs) इस सुविधा का समर्थन करते हैं?

2.) निर्देशिका के अंदर एक फ़ाइल का निर्माण या परिवर्तन घटना का नाम बदल रहा है? या वह एक हटा देता है और एक बनाता है? मैं इसे एक सिस्टम पर परीक्षण कर सकता हूं, लेकिन फिर यह सभी फाइल सिस्टम के लिए समान होगा?

उत्तर

2

ऐसा लगता है कि आप WatchService के बारे में बात कर रहे हैं।

ENTRY_CREATE घटना का शब्द कहता है कि एक नई प्रविष्टि को माना जाएगा यदि कोई नई फ़ाइल बनाई गई है या फ़ाइल का नाम बदलकर निर्देशिका में किया गया है। यदि फ़ाइल का नाम बदल दिया गया है और उसी निर्देशिका में रहता है तो इसमें कौन से ईवेंट निकाल दिए जाते हैं, इसका विनिर्देशन नहीं है।

शब्द यह भी बताता है कि सेवा ऑपरेटिंग सिस्टम या मतदान पर आधारित है या नहीं, कार्यान्वयन निर्भर है। मुझे संदेह है कि जेआरई द्वारा कार्यान्वयन किया गया है, इसलिए यदि आप जानते हैं कि कोई विशेष ओएस इसका समर्थन करता है, तो यह गारंटी नहीं है कि सेवा ओएस-स्तरीय कार्यक्षमता का उपयोग करेगी या मतदान का सहारा लेगी। वास्तव में, यह सेवा यह बताने का कोई तरीका नहीं देती है कि यह मतदान या ओएस-स्तरीय सुविधा का उपयोग कर रही है या नहीं।

एपीआई परिभाषित ऑपरेशंस श्रोता की तरह व्यवहार नहीं करता है। वॉच सर्विस सेवा स्वचालित रूप से देखता है, लेकिन घटनाओं की सूची प्राप्त करने के लिए, आपको अभी भी सेवा से देखी गई घटनाओं का मैन्युअल रूप से अनुरोध करना होगा। जब कोई नया ईवेंट मौजूद होता है तो यह स्वचालित रूप से कॉल करने के लिए किसी भी हुक प्रदान नहीं करता है।

+0

ठीक है, लेकिन मुझे लगता है कि जेआरई आप ओरेकल से डाउनलोड कर सकते हैं विंडोज और लिनक्स के लिए रास्ता तय करेंगे। मैं वास्तव में इसके बारे में वास्तव में रूचि रखता हूं। लेकिन अभी भी ओएस और फाइल सिस्टम में इस काम से पहले कुछ विशेषताएं होनी चाहिए। कोई विचार जो ओरेकल जेरे इसे संभालता है? –

+1

[inotify] (http://en.wikipedia.org/wiki/Inotify) एक लिनक्स टूल है जो फ़ाइल बदलते समय अधिसूचना का लाभ उठाता है। विंडोज़ की भी इस तरह की एक सेवा है: [FindFirstChangeNotification] (http://msdn.microsoft.com/en-us/library/aa364417%28VS.85%29.aspx) .NET में उपलब्ध है। मुझे नहीं पता कि ओरेकल जेरे इसे कैसे संभालता है, लेकिन मुझे लगता है कि यह उपलब्ध होने पर जेनी के माध्यम से उन लोगों में से एक को रीडायरेक्ट करता है। – Atreys

1

यदि आप विंडोज और लिनक्स पर इसके साथ खेलते हैं, तो आपको व्यवहार में बहुत अंतर दिखाई देंगे। तो जावा वास्तव में एक सतत मंच स्वतंत्र abstraction प्रदान करने का प्रयास नहीं करता है। आपको उन ओएस पर अपने ऐप का परीक्षण करना होगा जिनकी आप परवाह करते हैं (ठीक है, केवल 2 हैं)।

वॉचसेवर आप कल्पना कर सकते हैं उससे अधिक बेकार है। निराशा के लिए तैयार करें यदि आप वास्तव में इसमें कूदते हैं।

+0

ठीक है, मैं इसे ध्यान में रखूंगा। ऐसा लगता है कि निर्देशिकाओं को हर समय मतदान करना इतना कुशल नहीं लगता है। ऐसी सुविधा के लिए प्रतीक्षा की गई उम्र, 17 दिनों में यह वहां है। और अब यह बकवास है! उम्मीद है कि यह बहुत कठिन नहीं चलेगा :-) –

+1

ठीक है, मैंने आपको बहुत डरा दिया। यह शुरुआत में सोचने से कहीं अधिक जटिल है। – irreputable

संबंधित मुद्दे