2010-07-29 3 views
3

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

ответ

8

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

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

+0

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

3

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