-->

Reliable way of monitoring file changes in a direc

2020-06-18 16:30发布

问题:

I'm looking for a reliable way of looking for changes in a directory.

I have tried using the FileSystemWatcher, but it's rather inaccurate when many small files are created, changed or deleted. It misses about 1 or 2 % of the files in my tests. That is quite a lot when you are adding or changing thousands of files rapidly.

I have tried polling for changes at different intervals 500 ms, 2000 ms etc. In this case I get too many hits. That might have something to do with the resolution of timestamps on the FileInfo object.

So my question is; is it possible, using the .NET Framework, to get the the changes to a directory reliably?

-- Christian

回答1:

Have you tried increasing the InternalBufferSize? What size have you set it to?

From MSDN:


Note that a FileSystemWatcher may miss an event when the buffer size is exceeded. To avoid missing events, follow these guidelines: Increase the buffer size by setting the InternalBufferSize property. Avoid watching files with long file names, because a long file name contributes to filling up the buffer. Consider renaming these files using shorter names.


Keep your event handling code as short as possible.