Я создаю список FileSystemWatcher для просмотра файлов, измененных по нескольким путям. Коды выглядят следующим образом:
List<MyFileSystemWatcher> MyFileSystemWatcherList;
foreach(DataRow row in dt.Rows)
{
string MachineIP = row["MachineIP"].toString();
string MachineLogPath = row["MachineLogPath"].toString();
string FolderPath = Path.Combine(@"\\" + MachineIP, MachineLogPath);
MyFileSystemWatcher _FileSystemWatcher = new MyFileSystemWatcher(FolderPath, "*.txt");
_FileSystemWatcher.MachineName = MachineName;
_FileSystemWatcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite |
NotifyFilters.FileName | NotifyFilters.DirectoryName;
_FileSystemWatcher.InternalBufferSize = 32768;
_FileSystemWatcher.Changed += new FileSystemEventHandler(FileSystemWatcher_Changed);
_FileSystemWatcher.Error += new ErrorEventHandler(FileSystemWatcher_Error);
_FileSystemWatcher.Reset += new EventHandler(FileSystemWatcher_Reset);
MyFileSystemWatcherList.Add(_FileSystemWatcher);
}
Когда я запускаю средство просмотра файлов, задав для параметра EnableRaisingEvents значение true, все наблюдатели работают очень хорошо. Однако если файлы не были изменены в каком-либо пути (например, путь A) более 30 минут, а файл внес изменения только через 30 минут в пути (путь A), средство просмотра файлов не запускает никаких событий. Хорошо, что другие средства просмотра файлов не подвержены влиянию и все еще работают отлично.
Могу ли я узнать причину, по которой средство просмотра файлов прекращает работу, если в течение 30 минут не было внесено никаких изменений? Любое решение по этому поводу?