ऐसा लगता है जैसे आप जब अपने लॉग फ़ाइल बाह्य उस प्रभाव के लिए कुछ पढ़ा है, या अपने लॉग फ़ाइल के लिए लिखना चाहते हैं। यदि ऐसा है, तो NotifyFilters मान, LastAccess है। सुनिश्चित करें कि यह आपके FileSystemWatcher.NotifyFilter प्रॉपर्टी में झंडे में से एक के रूप में सेट है। अंतिम पहुंच समय में परिवर्तन तब फ़ाइल सिस्टम सिस्टम पर परिवर्तित ईवेंट को आग लगा देगा।
वर्तमान में, FileSystemWatcher आप सीधे पढ़ने और एक परिवर्तन के बीच अंतर करने की अनुमति नहीं है; वे दोनों LastAccess पर "परिवर्तन" के आधार पर परिवर्तित घटना को आग लगाते हैं। इसलिए, बड़ी संख्या में फाइलों को पढ़ने के लिए देखना असंभव होगा। हालांकि, आपको पता है कि आप कौन सी फाइल देख रहे हैं, इसलिए यदि आपके पास उस फ़ाइल के लिए FileInfo ऑब्जेक्ट था, और FileSystemWatcher ने अपनी बदली हुई घटना को निकाल दिया, तो आप एक नया प्राप्त कर सकते हैं और LastAccessTime मानों की तुलना कर सकते हैं। यदि एक्सेस समय बदल गया है, और LastWriteTime नहीं था, तो आपकी फ़ाइल केवल पढ़ी जा रही है।
अब, सबसे सरल शब्दों में, जब आप इसे पढ़ रहे हों तो फ़ाइल में बदलावों को तुरंत दूसरे ऐप में दिखाया नहीं जा रहा है, न ही आप "पहले वहां पहुंचने" में सक्षम होने जा रहे हैं, फ़ाइल को लॉक करें और इसे देखने से पहले इसे लिखो। इसलिए, आप FileSystemWatcher को एक पठन अनुरोध को "अवरुद्ध" करने के लिए उपयोग नहीं कर सकते हैं और उस सामग्री को दिखा सकते हैं जिसे आप देखना चाहते हैं। एक अन्य तरीका का उपयोगकर्ता एकमात्र तरीका देख सकता है जो आपने अभी लिखा है, यदि एप्लिकेशन फ़ाइल को भी देख रहा है और फ़ाइल को फिर से लोड करता है। इससे एक और बदली हुई घटना को आग लग जाएगी, जिससे एक अनंत लूप होता है जब तक कि अन्य एप्लिकेशन फ़ाइल को फिर से लोड करना जारी रखता है।
तुम भी पढ़ने और लिखने के लिए एक परिवर्तित ईवेंट के मिल जाएगा। किसी टेक्स्ट एडिटर में फ़ाइल खोलना (वस्तुतः कोई भी करेगा), कुछ बदलाव कर रहा है, फिर सहेजने पर दो बदले गए ईवेंट होंगे यदि आप अंतिम एक्सेस समय में बदलाव की तलाश में हैं। संपादक द्वारा फ़ाइल खोले जाने पर पहला व्यक्ति बंद हो जाएगा; उस समय, आप यह बताने में सक्षम नहीं होंगे कि एक लेखन होगा, इसलिए यदि आप फ़ाइल को शुद्ध केवल पढ़ने के लिए देख रहे हैं तो आप एसओएल हैं।
यह एक अजीब आवश्यकता की तरह लगता है। क्या आप विस्तार कर सकते हैं कि आपका अंतिम लक्ष्य थोड़ा और अधिक है। – luke
@luke - मैं क्या करना चाहता हूं फ़ाइल के एक हिस्से को एन्क्रिप्ट करना है, लेकिन जब एक वेब एप्लिकेशन (जिस पर मेरा नियंत्रण नहीं है) उस फ़ाइल को पढ़ने के लिए जाता है, तो मैं इसके लिए एन्क्रिप्टेड हिस्से को डिक्रिप्ट कर दूंगा। –
यह हल करने के लिए एक बेहतर तरीका प्रतीत होता है, यह केवल अधिक बढ़िया अनाज नियंत्रण नियंत्रण स्थापित करना होगा ताकि केवल वेब ऐप (और आपका ऐप) फ़ाइल को पढ़ सके, तो आपको इसे एन्क्रिप्ट करना पड़ेगा। – luke