Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

.NET filesystemwatcher - was it a file or a directory?

Is there a way to determine with the FSW if a file or a directory has been deleted?

like image 264
Arno Avatar asked Jul 26 '10 16:07

Arno


People also ask

What is FileSystemWatcher?

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.

Which of the following are types of changes that can be detected by the FileSystemWatcher?

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.

Is FileSystemWatcher multithreaded?

Nope, filesystemwatchers run on their own thread.


1 Answers

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);             }         }     } } 
like image 70
Steven Sudit Avatar answered Oct 10 '22 01:10

Steven Sudit