Parece que desea escribir en su archivo de registro cuando su archivo de registro se lee externamente, o algo por el estilo. Si ese es el caso, hay un valor de NotifyFilters, LastAccess. Asegúrese de que esté configurado como uno de los indicadores en su propiedad FileSystemWatcher.NotifyFilter. Un cambio en el último tiempo de acceso disparará el evento Changed en FileSystemWatcher.
Actualmente, FileSystemWatcher no permite diferenciar directamente entre una lectura y un cambio; ambos activan el evento modificado en función del "cambio" de LastAccess. Por lo tanto, sería inviable observar las lecturas en una gran cantidad de archivos. Sin embargo, parece que sabe qué archivo está viendo, por lo que si tiene un objeto FileInfo para ese archivo y FileSystemWatcher activó su evento Changed, podría obtener uno nuevo y comparar los valores de LastAccessTime. Si el tiempo de acceso cambió, y LastWriteTime no lo hizo, su archivo solo se está leyendo.
Ahora, en términos más simples, los cambios que realice en el archivo mientras se está leyendo no se mostrarán inmediatamente en la otra aplicación, ni podrá "llegar primero", bloquee el archivo y escribe en él antes de que lo vean. Por lo tanto, no puede usar FileSystemWatcher para "interceptar" una solicitud de lectura y mostrar el contenido que desea que esa aplicación vea. La única forma en que el usuario de otra aplicación puede ver lo que acaba de escribir es si la aplicación también está mirando el archivo y vuelve a cargar el archivo. Eso disparará otro evento modificado, causando un bucle infinito siempre que la otra aplicación continúe recargando el archivo.
También recibirá un evento Modificado para una lectura y una escritura. Abrir un archivo en un editor de texto (prácticamente cualquiera lo hará), hacer algunos cambios, luego guardar disparará dos eventos modificados si está buscando cambios en el último tiempo de acceso. El primero se disparará cuando el editor abra el archivo; en ese momento, es posible que no pueda decir que ocurrirá una escritura, de modo que si está buscando accesos puros de solo lectura al archivo, entonces usted es SOL.
esto parece un requisito extraño. puedes expandirte en lo que tu objetivo final es un poco más. – luke
@luke - Lo que me gustaría hacer es encriptar una parte del archivo, pero cuando una aplicación web (que no tengo control) va a leer ese archivo, descifraré la parte encriptada para ello. –
parece una mejor manera de resolver esto sería simplemente configurar un control de acceso más detallado para que solo la aplicación web (y su aplicación) pueda leer el archivo, entonces no tendría que encriptarlo en absoluto. – luke