मैं एक निर्देशिका की निगरानी करने के लिए एक विंडोज़ फ़ॉर्म एप्लिकेशन का उपयोग कर रहा हूं और इसमें गिरा फ़ाइलों को किसी अन्य निर्देशिका में स्थानांतरित कर रहा हूं।
फिलहाल यह फ़ाइल को किसी अन्य निर्देशिका में कॉपी कर देगा, लेकिन जब कोई अन्य फ़ाइल जोड़ी जाती है तो यह बिना किसी त्रुटि संदेश के समाप्त हो जाएगी। कभी-कभी यह तीसरे पर समाप्त होने से पहले दो फ़ाइलों की प्रतिलिपि बनाता है।
क्या यह इसलिए है क्योंकि मैं एक कंसोल ऐप के बजाय विंडोज फॉर्म एप्लिकेशन का उपयोग कर रहा हूं? क्या कोई ऐसा तरीका है जिससे मैं कार्यक्रम को समाप्त होने से रोक सकता हूं और निर्देशिका को देखता रह सकता हूं?
private void watch()
{
this.watcher = new FileSystemWatcher();
watcher.Path = path;
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
watcher.Filter = "*.*";
watcher.Changed += OnChanged;
watcher.EnableRaisingEvents = true;
}
private void OnChanged(object source, FileSystemEventArgs e)
{
//Copies file to another directory.
}
public void Dispose()
{
// avoiding resource leak
watcher.Changed -= OnChanged;
this.watcher.Dispose();
}