Comment regarder un dossier et des sous-dossiers pour les changements

Im essayant de regarder un dossier spécifique pour les modifications, puis si tout ajout/édition/suppression se produit à l'intérieur de ça, je dois obtenir le type de modification de tous les fichiers dans ce dossier et de ses sous-dossiers. Je suis en utilisant WatchService pour cela, mais il ne voit un seul chemin, il ne gère pas les sous-dossiers.

Voici ma démarche:

try {
        WatchService watchService = pathToWatch.getFileSystem().newWatchService();
        pathToWatch.register(watchService, StandardWatchEventKinds.ENTRY_CREATE,
                StandardWatchEventKinds.ENTRY_MODIFY, StandardWatchEventKinds.ENTRY_DELETE);

        //loop forever to watch directory
        while (true) {
            WatchKey watchKey;
            watchKey = watchService.take(); //This call is blocking until events are present

            //Create the list of path files
            ArrayList<String> filesLog = new ArrayList<String>();
            if(pathToWatch.toFile().exists()) {
                File fList[] = pathToWatch.toFile().listFiles();
                for (int i = 0; i < fList.length; i++) { 
                    filesLog.add(fList[i].getName());
                }
            }

            //Poll for file system events on the WatchKey
            for (final WatchEvent<?> event : watchKey.pollEvents()) {
                printEvent(event);
            }

            //Save the log
            saveLog(filesLog);

            if(!watchKey.reset()) {
                System.out.println("Path deleted");
                watchKey.cancel();
                watchService.close();
                break;
            }
        }

    } catch (InterruptedException ex) {
        System.out.println("Directory Watcher Thread interrupted");
        return;
    } catch (IOException ex) {
        ex.printStackTrace();  //Loggin framework
        return;
    }

Comme je l'ai dit avant, je reçois le journal uniquement pour les fichiers dans le chemin d'accès sélectionné, et je veux regarder tous les dossiers et sous-dossiers, fichiers, quelque chose comme:

Exemple 1:

FileA (Created)
FileB
FileC
FolderA FileE
FolderA FolderB FileF

Exemple 2:

FileA
FileB (Modified)
FileC
FolderA FileE
FolderA FolderB FileF

Est-il une meilleure solution?

source d'informationauteur Yuri Heupa