C#: Using FileSystemWatcher to watch for changes to files

后端 未结 3 1522
醉梦人生
醉梦人生 2021-01-22 15:42

Ok, so I learnt from How to check if a open file has been updated that I should use a FileSystemWatcher to watch for changes to files. Then now, the question is if I must keep

相关标签:
3条回答
  • 2021-01-22 16:07

    It's enough if you create a watcher for each directory (and optionally, you can have the watcher to monitor a whole directory tree.) You can then use the events to compare the changed files with the list of files you are interested in.

    I would suggest you make some kind of "nanny" class for the watchers to ensure you doesn't dispose active watchers, or create duplicate. Just a tip :)

    Btw, yes, there's a limit, you can't create infinite watchers. In specific scenarios that can be a problem, but most likely, that's not the case for you

    0 讨论(0)
  • 2021-01-22 16:10

    I think you're definitely on the right track. It's up to you how to store the multiple fileWatchers but disposing of them and clearing their queue as quickly as possible are important for reliability. You only need one per directory, not file.

    There are lots of posts about the unreliability of fileWatchers so be diligent in your usage.

    0 讨论(0)
  • 2021-01-22 16:11

    This really is a trade-off. Many watchers will consume more resources, but if you have a watcher on a directory containing many files/sub directories (e.g. C:), this will also consume a lot of resources.

    If all the files are located in a single folder, you should just use the single watcher.

    0 讨论(0)
提交回复
热议问题