2012-01-10 13 views
8

JDK 7 का उपयोग मैं नई फ़ाइल कृतियों, विलोपन और संशोधन java.nio.file.StandardWatchEventKinds प्रयोग करने के लिए विशिष्ट निर्देशिका देखने में सफलता मिली है हालांकि जावा नई बनाई गई फ़ाइलों का पता लगा रहा। *वास्तविक समय

मैं किसी को आशा करती हूं कि जावा को अपने पथ के बावजूद नई फ़ाइल रचनाओं का पता लगाने के लिए एक तरीका पता हो सकता है।

मैं ऐसा करना चाहता हूं इसलिए मैं प्रत्येक नई लिखित फ़ाइल के लिए MD5 योग की गणना कर सकता हूं।

किसी भी सलाह के लिए धन्यवाद जो आप दे सकते हैं।

+0

"उनके पथ के बावजूद" परिभाषित करें? एक फाइल सिस्टम? कोई लिखने योग्य माउंट? इसके अलावा, क्या ऑपरेटिंग सिस्टम? (संक्षिप्त जवाब "नहीं" है लेकिन ओएस के आधार पर एक चेतावनी हो सकती है) –

+0

अभी विंडोज 7/एनटीएफएस। मैं सभी आरोहित वॉल्यूमों की निगरानी करना चाहता हूं। मैं JNotify को एक संभावित समाधान के रूप में जांच रहा हूं। धन्यवाद – JonnyKash

उत्तर

0

ठीक है, मुझे नहीं लगता कि जावा बॉक्स के बाहर ऐसा कर सकता है। आपको ऑपरेटिंग सिस्टम में कॉल को अवरुद्ध करना होगा, जिसके लिए नंगे धातु के करीब कुछ चाहिए, या आप another answer में सुझाए गए अनुसार कर सकते हैं और रूटर्स से प्रत्येक फ़ोल्डर में श्रोताओं को पंजीकृत कर सकते हैं, मामले में अन्य ड्राइव का उल्लेख नहीं करना विंडोज मशीनें

पहला दृष्टिकोण कस्टम जेएनआई की आवश्यकता होगी जो मानता है कि ओएस में ऐसा हुक है और उपयोगकर्ता कोड पहुंच की अनुमति देता है।

दूसरा दृष्टिकोण काम करेगा लेकिन सभी श्रोताओं को ट्रैक करने के लिए बड़ी मात्रा में स्मृति का उपभोग कर सकता है। विंडोज़ में c: \ पर राइट-क्लिक करें और चुनें और देखें कि हम कितने फ़ोल्डरों के बारे में बात कर रहे हैं।

+0

धन्यवाद। मैंने पाया [JNotify] (http://jnotify.sourceforge.net/) पुस्तकालय इसके लिए पूरी तरह से काम करता है। – JonnyKash

0

एक संभावना - एक सुविधाजनक नहीं, लेकिन एक संभावना - उन निर्देशिकाओं के लिए निर्देशिका पेड़ पर चलना है जिन्हें आप देखना चाहते हैं, प्रत्येक को वॉच सेवा में पंजीकृत करना। यह इसके बारे में जाने का एक बहुत अच्छा तरीका नहीं है, और यह वास्तविक समस्या पेड़ कितना बड़ा है इस पर निर्भर करता है।

0

मुझे मानकवॉचवेन्ट्स नहीं पता (हालांकि यह सुविधाजनक लगता है)।

एक ऐसा करने का एक तरीका है जिसे आप मूल विंडो एपीआई जैसे ReadDirectoryChangesW (या वॉल्यूम चेंज) का उपयोग करना चाहते हैं। यह दर्दनाक है, लेकिन काम करता है (वहां रहा, ऐसा किया, इच्छा है कि उस समय मेरे पास दूसरा विकल्प था)।

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