2010-07-29 7 views
3

Ma question est pourquoi lors de l'utilisation de classe FileSystemWatcher pour surveiller quand un fichier Excel est enregistré le FileSystemEventArgs retourne .Deleted? Lors de la surveillance du fichier de format .txt, il est .ChangedFileSystemWatcher Classe

Répondre

8

Je suppose que: parce que l'Excel crée d'abord un fichier temporaire, y écrit les informations, puis supprime le fichier .xls d'origine et renomme le fichier temporaire.

Il se peut qu'Excel assure de cette façon que le fichier d'origine n'est pas perdu si l'opération d'enregistrement échoue.

+0

Je confirme que c'est ce qui se passe. Peut être clairement vu en utilisant le logiciel gratuit Process Monitor de SysInternals. –

3

Il semble qu'Excel supprime et recrée le fichier que vous regardez. Une façon de le prouver empiriquement est d'avoir votre application qui surveille le fichier en cours d'exécution, puis ouvrez et enregistrez le fichier dans une autre application, par exemple le Bloc-notes. Si cela entraîne uniquement le déclenchement de l'événement Changed, Excel déclenche l'événement Deleted.

Questions connexes