Pregunta

Acabo de ver una característica increíble con Java 7, el Directory Watcher. Te dirá cuándo algo cambió en un directorio sin sondear el directorio.

1.) Pero dice que recurre a las encuestas si el sistema de archivos no admite registrarse para eventos de cambio. ¿Todos los sistemas de archivos típicos de Linux y Windows (EXTX, NTFS, ReiserXXX, JSF, ZFS) admiten esta función?

2.) ¿renombra un archivo dentro de un directorio un evento de creación o cambio? ¿O es ese eliminar y uno crea? Puedo probarlo en un sistema, pero ¿será entonces lo mismo para todos los sistemas de archivos?

¿Fue útil?

Solución

Parece que estás hablando del Watchservice.

La redacción del Entry_create El evento dice que se percibiría una nueva entrada si se crea un nuevo archivo o se renombra un archivo en el directorio. Carece de especificación de qué eventos se disparan si se renombra un archivo y permanece en el mismo directorio.

La redacción también establece que si el servicio se basa en el sistema operativo o en las encuestas depende de la implementación. Sospecho que eso es la implementación del JRE, por lo que incluso si sabe que un sistema operativo en particular lo respalda, no es una garantía de que el servicio utilizará la funcionalidad de nivel del sistema operativo o recurrirá a la encuesta. De hecho, el Servicio no proporciona ninguna forma de saber si está utilizando la encuesta o una función de nivel del sistema operativo.

Las operaciones que define la API tampoco se comportan como un oyente. WatchService realiza una observación automática, pero para adquirir la lista de eventos que suceden, aún tiene que solicitar manualmente los eventos vistos del servicio. No parece proporcionar ningún gancho para que se llamen automáticamente cuando hay un nuevo evento presente.

Otros consejos

Si juegas con él en Windows y en Linux, verás muchas diferencias en el comportamiento. Por lo tanto, Java realmente no intenta proporcionar una abstracción independiente de plataforma constante. Debe probar su aplicación en los sistemas operativos que le importan (bueno, solo hay 2).

WatchService apesta más de lo que puedes imaginar. Prepárese para las frustraciones si realmente se sumerge en ello.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top