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?
02 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); } 2Please look here for a detailed explanation of the FileSystemWatcher:
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);