2011-08-25 3 views
16

Qualcuno ha utilizzato FileSystemWatcher nel framework 4 e hai riscontrato problemi?Quanto è affidabile FileSystemWatcher in .netFramwork 4?

lo sto utilizzando in un servizio di Windows e non posso permettermi di fallire.

ho sentito da un amico che non è molto affidabile, ma mi hanno testato per un paio di ore e che i havent avuto problemi, ma io sono ancora dubitare usarlo .....

lo farei apprezzare qualche consiglio su questa materia, non voglio consegnare l'applicazione per il cliente e poi rendersi conto che questa cosa sta andando in crash ....

Grazie


Grazie per i ragazzi di consulenza

penso che per i miei scopi dovrebbe essere ok. controllerà una cartella sul disco locale del server e tutto il suo controllo è se un file è stato modificato quindi penso che dovrebbe andare bene

+0

Un sacco di persone hanno aspettative irragionevoli su FileSystemWatcher, ad esempio credere che "Creato" significhi che il file esiste, contiene tutti i dati che era destinato a contenere e nessun altro programma lo sta attualmente accedendo. –

+0

Ma ci sono stati anche casi in versioni precedenti in cui FSW semplicemente non avrebbe rilevato cambiamenti evidenti che avrebbe dovuto avere. L'ho provato una volta con la versione .net 2 e l'ho trovato inutile per qualcosa di semplice come guardare i file creati (non stavo nemmeno provando ad accedere a questi file). – Tridus

+0

'FileSystemWatcher' non è quello che chiamerei" relaible ". Se l'affidabilità è fondamentale, è meglio utilizzarla per comodità e utilizzare anche il polling per assicurarsi che nessun file venga perso. Vedi [FileSystemWatcher vs polling per vedere le modifiche ai file] (http://stackoverflow.com/questions/239988/filesystemwatcher-vs-polling-to-watch-for-file-changes) – Justin

risposta

35

FileSystemWatcher si basa sul supporto del file system sottostante, quindi qualsiasi problema di affidabilità con il il file system sarà visibile come problemi di affidabilità con FileSystemWatcher. Ad esempio, se si sta guardando una directory di rete, l'affidabilità del server di rete influirà sull'affidabilità di FileSystemWatcher. Ad esempio, il server potrebbe bloccarsi e essere riavviato. Non verrai informato delle modifiche che si verificano mentre la connettività di rete viene persa. O il server può simply have a bug che impedisce a FileSystemWatcher di funzionare in modo affidabile.

Un altro punto è che FileSystemWatcher guarda solo le modifiche ai metadati. Not all file changes result in changes to metadata.