Is there a way to determine with the FSW if a file or a directory has been deleted?
Use FileSystemWatcher to watch for changes in a specified directory. You can watch for changes in files and subdirectories of the specified directory. You can create a component to watch files on a local computer, a network drive, or a remote computer.
The FileSystemWatcher lets you detect several types of changes in a directory or file, like the 'LastWrite' date and time, changes in the size of files or directories etc. It also helps you detect if a file or directory is deleted, renamed or created.
Nope, filesystemwatchers run on their own thread.
Here's a simplified and corrected version of fletcher's solution:
namespace Watcher { class Program { private const string Directory = @"C:\Temp"; private static FileSystemWatcher _fileWatcher; private static FileSystemWatcher _dirWatcher; static void Main(string[] args) { _fileWatcher = new FileSystemWatcher(Directory); _fileWatcher.IncludeSubdirectories = true; _fileWatcher.NotifyFilter = NotifyFilters.FileName; _fileWatcher.EnableRaisingEvents = true; _fileWatcher.Deleted += WatcherActivity; _dirWatcher = new FileSystemWatcher(Directory); _dirWatcher.IncludeSubdirectories = true; _dirWatcher.NotifyFilter = NotifyFilters.DirectoryName; _dirWatcher.EnableRaisingEvents = true; _dirWatcher.Deleted += WatcherActivity; Console.ReadLine(); } static void WatcherActivity(object sender, FileSystemEventArgs e) { if(sender == _dirWatcher) { Console.WriteLine("Directory:{0}",e.FullPath); } else { Console.WriteLine("File:{0}",e.FullPath); } } } }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With