Класс FileSystemWatcher

#c#

#c#

Вопрос:

Мой вопрос в том, почему при использовании класса FileSystemWatcher для отслеживания сохранения файла Excel возвращается FileSystemEventArgs .Удален? При мониторинге файла формата .txt это .Изменен

Ответ №1:

Я полагаю: потому что Excel сначала создает временный файл, записывает туда информацию, затем удаляет исходный файл .xls и переименовывает временный файл.

Возможно, Excel таким образом гарантирует, что исходный файл не будет потерян в случае сбоя операции сохранения.

Комментарии:

1. Я подтверждаю, что это то, что происходит. Это можно наглядно увидеть с помощью бесплатного программного обеспечения Process Monitor от SysInternals.

Ответ №2:

Похоже, что Excel вполне может удалять и заново создавать файл, который вы просматриваете. Один из способов доказать это эмпирически — запустить приложение, которое просматривает файл, а затем открыть и сохранить файл в другом приложении, например Notepad. Если это приводит только к запуску Changed события, то это Excel вызывает Deleted событие для запуска.