2011-08-25 16 views
16

¿Alguien ha utilizado FileSystemWatcher en el marco 4 y ha encontrado algún problema?¿Qué tan confiable es el FileSystemWatcher en .netFramwork 4?

lo estoy usando en un servicio de Windows y no puedo permitir que falle.

que he oído de un amigo que no es muy fiable, pero he estado probando durante unas horas y ahora no he tenido ningún problema, pero todavía estoy dudando de usarlo .....

lo haría agradecería cualquier consejo sobre este asunto, no quiero para entregar la aplicación para el cliente y luego se dan cuenta de que esto va a estrellarse ....

Gracias


Gracias por los chicos de asesoramiento

creo que para mis propósitos debería estar bien. se comprobará una carpeta en la unidad local del servidor y toda su comprobación es si un archivo se ha modificado, así que creo que debería estar bien

+0

Mucha gente tiene expectativas poco razonables de FileSystemWatcher, como creer que "Creado" significa que el archivo existe, tiene todos los datos que estaba destinado a contener, y ningún otro programa está accediendo a él. –

+0

Pero también ha habido casos en versiones anteriores donde FSW simplemente no se daría cuenta de los cambios obvios que debería tener. Lo intenté una vez con la versión .net 2 y me pareció inútil para algo tan simple como mirar los archivos que se crean (ni siquiera estaba tratando de acceder a dichos archivos). – Tridus

+0

El 'FileSystemWatcher' no es lo que yo llamaría" relaible ". Si la confiabilidad es crítica, es mejor usarla como una conveniencia y también usar encuestas para asegurarse de que no se pierdan archivos. Consulte [FileSystemWatcher versus sondeo para ver los cambios de archivos] (http://stackoverflow.com/questions/239988/filesystemwatcher-vs-polling-to-watch-for-file-changes) – Justin

Respuesta

35

FileSystemWatcher se basa en el soporte del sistema de archivos subyacente, por lo que cualquier problema de fiabilidad con el el sistema de archivos será visible como problemas de confiabilidad con FileSystemWatcher. Por ejemplo, si está mirando un directorio de red, entonces la confiabilidad del servidor de red afectará la confiabilidad de FileSystemWatcher. Por ejemplo, el servidor puede bloquearse y reiniciarse. No se le notificarán los cambios que se producen mientras se pierde la conectividad de la red. O el servidor puede simply have a bug que impide que FileSystemWatcher funcione de manera confiable.

Otro punto es que FileSystemWatcher solo busca cambios en los metadatos. Not all file changes result in changes to metadata.

Cuestiones relacionadas