Seguí el tutorial de Java7 nio2 Watching a Directory for Changes para supervisar recursivamente todo el contenido de un directorio con el código de muestra WatchDir.java.Java7 WatchService - Error de acceso denegado al intentar eliminar directorios anidados recursivamente vistos (solo Windows)
Si bien esto funciona bien en Linux y Mac, en Windows (probado en Vista y 7), al intentar eliminar carpetas anidadas y vistas utilizando Windows Explorer falla el mensaje "Acceso denegado: necesita permiso para realizar esta acción "cuando existe un archivo en uno de los directorios anidados".
Por ejemplo, si miro un árbol de carpetas anidadas en Windows:
-- Folder A
-- Folder A1
-- File F
y tratar de eliminar la carpeta A, consigo el dicho error Acceso denegado. Sin embargo, funciona bien si:
- eliminar la carpeta A1 a continuación, elimine la carpeta A
- Eliminar archivo F a continuación, elimine la carpeta A
¿Hay una manera de utilizar el WatchService nio2 para ver de forma recursiva una directorio anidado, pero no actúa como si un programa estuviera accediendo a archivos anidados?
Gracias por proporcionar la nota sobre el modificador FILE_TREE específico de Windows. Hubo un comentario similar (que me perdí) en el error relacionado en la base de datos de errores de Java 7: http://bugs.sun.com/bugdatabase/view_bug.do;jsessionid=76a42b61021a94ffffffffa049f7587fd4149?bug_id=6972833 –
También tenga en cuenta que en Eclipse , Tuve que reducir el Error causado por la Restricción de acceso en rt.jar a una Advertencia. Ver http://lkamal.blogspot.com/2008/09/eclipse-access-restriction-on-library.html –