Вопрос

Я использую .NET FileSystemWatcher на сервере Windows для просмотра папки на сервере Windows.У меня также есть доступ к той же папке с сервера Linux, использующего Samba.Если я копирую файл из просматриваемой папки в другое место, для исходного файла генерируется событие изменения.Правильно ли такое поведение?Похоже, это изменяет время последнего обращения к файлу.Как я могу игнорировать такого рода изменения?

Это было полезно?

Решение

Время "последнего обращения" устанавливается программами Windows непоследовательно:например, отображение контекстного меню свойств файла в Windows на этот раз приведет к сбросу настроек.Как вы заявляете, Windows Copy не устанавливает время "последнего доступа", но копирование файла на Windows server с использованием Samba выполняется так, как это делают внутренние драйверы Samba.

Боюсь, ваше единственное обходное решение - игнорировать время "последнего доступа", используя фильтр в вашем FileSystemWatcher:

FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = "c:\yourpathhere";
watcher.NotifyFilter = NotifyFilters.LastWrite 
   | NotifyFilters.FileName | NotifyFilters.DirectoryName;

или что-то подобное.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top