दिलचस्प पोस्ट
क्लिक किए जाने पर HTML पाठ इनपुट के सभी पाठ को चुनना जावास्क्रिप्ट में ग्रिडदृश्य चयनित पंक्ति डेटाकी प्राप्त करें क्या GUID अद्वितीय समय का 100% है? यह जाँचने का सबसे अच्छा तरीका क्या है कि कोई URL PHP में मौजूद है या नहीं? पूर्णांक रूपांतरण (संकुचन, चौड़ा), अपरिभाषित व्यवहार विधि कैसे सी # सी में एक और कॉल करने के लिए? HTML इनपुट को स्वच्छ करना क्यों नहीं std :: fstream वर्ग एक std :: स्ट्रिंग लेते हैं? कंसोल में प्रवेश के बिना कुंजी दबाएं बुनियादी प्रमाणीकरण के लिए मैं एक उपयोगकर्ता खाता कैसे बना सकता हूं? .mobileconfig से डिवाइस UDID प्राप्त करना SqlDataReader का उपयोग करते हुए बाइनरी डेटा प्राप्त करना जब सीआरसी एमडी 5 / एसएचए 1 की तुलना में अधिक उपयुक्त होता है? आईओएस पीएनजी छवि 90 डिग्री घुमाए गए पैडिंग / मार्जिन के साथ सीएसएस 100% ऊंचाई

एक निर्देशिका की निगरानी के लिए FileSystemWatcher का उपयोग करना

मैं एक निर्देशिका को मॉनिटर करने के लिए एक विंडोज़ प्रपत्र अनुप्रयोग का उपयोग कर रहा हूं और फाइलों को दूसरी निर्देशिका में हटा दिया।

फिलहाल यह फ़ाइल को दूसरी निर्देशिका में प्रतिलिपि करेगा, लेकिन जब एक और फ़ाइल जोड़ दी जाती है तो यह केवल त्रुटि संदेश के साथ खत्म हो जाएगा कभी-कभी यह तीसरी बार समाप्त होने से पहले दो फाइल कॉपी करता है

क्या यह इसलिए है क्योंकि मैं कंसोल ऐप के बजाय एक विंडोज़ प्रपत्र अनुप्रयोग का उपयोग कर रहा हूं? क्या कोई तरीका है कि मैं प्रोग्राम को समाप्त होने से रोक सकता हूं और निर्देशिका देख रहा हूं?

private void watch() { FileSystemWatcher watcher = new FileSystemWatcher(); watcher.Path = path; watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName; watcher.Filter = "*.*"; watcher.Changed += new FileSystemEventHandler(OnChanged); watcher.EnableRaisingEvents = true; } private void OnChanged(object source, FileSystemEventArgs e) { //Copies file to another directory. } 

Solutions Collecting From Web of "एक निर्देशिका की निगरानी के लिए FileSystemWatcher का उपयोग करना"

समस्या फिल्टर को सूचित किया गया था कार्यक्रम उस फाइल को खोलने का प्रयास कर रहा था जो अब भी नकल कर रहा था। मैंने अंतिम सूची को छोड़कर सभी फ़िल्टर को हटा दिया।

 private void watch() { FileSystemWatcher watcher = new FileSystemWatcher(); watcher.Path = path; watcher.NotifyFilter = NotifyFilters.LastWrite; watcher.Filter = "*.*"; watcher.Changed += new FileSystemEventHandler(OnChanged); watcher.EnableRaisingEvents = true; } 

आपने फाइल हैंडलिंग कोड की आपूर्ति नहीं की, लेकिन मैं मानता हूं कि आप ऐसा ही गलती करते हैं जब कोई ऐसी बात लिखता है, तो फ़ाइल की गई घटना को जैसे ही फाइल बनाया जाता है, उठाया जाएगा। हालांकि, फ़ाइल को समाप्त होने में कुछ समय लगेगा। उदाहरण के लिए 1 जीबी का फ़ाइल आकार लें। फ़ाइल को किसी अन्य प्रोग्राम (एक्सप्लोरर। एक्स्टेयर द्वारा कहीं से कॉपी करने) के द्वारा बनाया जा सकता है लेकिन उस प्रक्रिया को समाप्त करने में मिनट लगेंगे घटना निर्माण समय पर उठाया गया है और आपको फ़ाइल की प्रतिलिपि बनाने के लिए तैयार होने के लिए इंतजार करना होगा।

इस फ़ंक्शन को एक लूप में उपयोग करके आप फ़ाइल तैयार करने के लिए प्रतीक्षा कर सकते हैं।

इसका कारण हो सकता है कि व्यूअर को एक विधि में स्थानीय चर के रूप में घोषित किया गया है और यह विधि समाप्त होने पर एकत्र कचरा है। आपको इसे क्लास सदस्य के रूप में घोषित करना चाहिए। निम्न प्रयास करें:

 FileSystemWatcher watcher; private void watch() { watcher = new FileSystemWatcher(); watcher.Path = path; watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName; watcher.Filter = "*.*"; watcher.Changed += new FileSystemEventHandler(OnChanged); watcher.EnableRaisingEvents = true; } private void OnChanged(object source, FileSystemEventArgs e) { //Copies file to another directory. }