Sembra che tu voglia scrivere sul tuo file di registro quando il tuo file di registro viene letto esternamente, o qualcosa del genere. Se questo è il caso, c'è un valore NotifyFilters, LastAccess. Assicurarsi che questo sia impostato come uno dei flag nella proprietà FileSystemWatcher.NotifyFilter. Una modifica nell'ultimo tempo di accesso attiverà quindi l'evento Changed su FileSystemWatcher.
Attualmente FileSystemWatcher non consente di distinguere direttamente tra una lettura e una modifica; entrambi attivano l'evento Changed in base al "cambiamento" in LastAccess. Quindi, sarebbe impossibile guardare le letture su un gran numero di file. Tuttavia, sembra che tu sappia quale file stai guardando, quindi se hai un oggetto FileInfo per quel file e FileSystemWatcher ha attivato l'evento Changed, puoi ottenerne uno nuovo e confrontare i valori LastAccessTime. Se il tempo di accesso è cambiato e LastWriteTime no, il tuo file viene solo letto.
Ora, in termini più semplici, le modifiche apportate al file mentre vengono lette non vengono visualizzate immediatamente nell'altra app, né si sarà in grado di "arrivare prima", bloccare il file e scrivici prima che lo vedano. Pertanto, non è possibile utilizzare FileSystemWatcher per "intercettare" una richiesta di lettura e mostrare il contenuto che l'app deve vedere. L'unico modo in cui l'utente di un'altra applicazione può vedere ciò che hai appena scritto è se l'applicazione sta anche guardando il file e ricarica il file. Questo genererà un altro evento Changed, causando un ciclo infinito finché l'altra applicazione continuerà a ricaricare il file.
Si otterrà anche un evento modificato per una lettura e una scrittura. Aprendo un file in un editor di testo (praticamente qualsiasi cosa farà), apportando alcune modifiche, quindi il salvataggio genererà due eventi modificati se stai cercando le modifiche al tempo dell'ultimo accesso. Il primo si spegnerà quando il file verrà aperto dall'editor; a quel tempo, potresti non essere in grado di dire che una scrittura avverrà, quindi se stai cercando un accesso in sola lettura al file, allora sei SOL.
questo sembra uno strano requisito. puoi espandere ciò che il tuo obiettivo finale è un po 'di più. – luke
@luke - Quello che vorrei fare è criptare una parte del file, ma quando un'applicazione web (che non ho il controllo) va a leggere quel file, decrittò la porzione crittografata per esso. –
sembra che un modo migliore per risolvere questo problema sia semplicemente impostare un controllo di accesso a grana più fine in modo che solo l'app Web (e la tua app) possano leggere il file, quindi non sarà necessario crittografarlo affatto. – luke