दिलचस्प पोस्ट
Mysql डेटाबेस से मेरी BLOB छवि दिखाने के लिए मुझे अपने PHP पृष्ठ की आवश्यकता है Android पर `startActivityForResult` का प्रबंधन कैसे करें? विज़ुअल स्टूडियो में प्रोजेक्ट / समाधान के बीच कोड कैसे साझा करते हैं? NUnit Visual Studio 2010 कोड नहीं चल रहा है कैसे jQuery के साथ 5 सेकंड इंतजार करने के लिए? इकाई प्रकार MVC5 EF6 में उपयोगकर्ता JSch का उपयोग करके सर्वर प्रतिक्रिया पढ़ने का कभी भी न खत्म होना डिस्प्ले में अंतर: इनलाइन-फ्लेक्स और डिस्प्ले: फ्लेक्स _t (अंडरस्कोर-टी) द्वारा किस प्रकार का अनुसरण किया जाता है? डेटा को फ़िल्टर करना। फ्रेम ifof स्टेटमेंट में sizeof () ऑपरेटर एंड्रॉइड में उपलब्ध / इंस्टॉल किए गए फोंट की सूची कैसे प्राप्त करें? PHP में XML दस्तावेज़ जेनरेट करना (एस्केप वर्ण) ओपनएसएसएल के साथ मेक्रिप्ट को बदलें क्या मैं सी में चार ** argv या char * argv का उपयोग करना चाहिए?

एक निर्देशिका की निगरानी के लिए 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. } 

वेब के समाधान से एकत्रित समाधान "एक निर्देशिका की निगरानी के लिए 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. }