Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Which filter of FileSystemWatcher do I need to use for finding new files

Tags:

So far I know that FileSystemWatcher can look into a folder and if any of the files inside that folder is changed,modifies,.etc... then we can handle it. But I am not sure which filter and event I should use in my scenario: Watch for a Folder, If a file is added to that folder, do XYZ ... So In my scenario I don't care if an existing file is changed,etc..those should be ignored...only do XYZ if and only if a new file has been added to that Folder...

Which event and filter do you recommended for this scenario?

like image 926
Bohn Avatar asked Jun 17 '12 15:06

Bohn


People also ask

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.

What is the use of file watcher?

File Watcher is an IntelliJ IDEA tool that allows you to automatically run a command-line tool like compilers, formatters, or linters when you change or save a file in the IDE.

Which event handler is suggested when a file is changed in C#?

FileSystemWatcher.Created Event (System.IO) Occurs when a file or directory in the specified Path is created.


2 Answers

Set up the watcher:

FileSystemWatcher watcher = new FileSystemWatcher(); watcher.Path = "Blah";  watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite     | NotifyFilters.FileName;  watcher.Created += new FileSystemEventHandler(OnChanged);  watcher.EnableRaisingEvents = true; 

Then implement the FileCreated delegate:

private void OnChanged(object source, FileSystemEventArgs e) {     Console.WriteLine("File: " +  e.FullPath + " " + e.ChangeType); } 
like image 97
David Brabant Avatar answered Oct 14 '22 05:10

David Brabant


Please look here for a detailed explanation of the FileSystemWatcher: http://www.c-sharpcorner.com/uploadfile/mokhtarb2005/fswatchermb12052005063103am/fswatchermb.aspx

You will have to look for created files if you want to look for added files.

You specify the type of change to watch for by setting the value of a WatcherChangeType enumeration. The possible values are as follows:

  • All: The creation, deletion, change, or renaming of a file or folder.
  • Changed: The change of a file or folder. The types of changes include: changes to size, attributes, security settings, last write, and last access time.
  • Created: The creation of a file or folder.
  • Deleted: The deletion of a file or folder.
  • Renamed: The renaming of a file or folder.

Also you may just wire up the event handler that fires if a file is created (added) and not implement all the other events since they are not interesting for you:

watcher.Created += new FileSystemEventHandler(OnChanged); 
like image 27
Jason De Oliveira Avatar answered Oct 14 '22 05:10

Jason De Oliveira