allora, per la versione di java non c'è problema perchè mi serve solo per java 8.
quindi starei a posto.

per quanto riguarda il secondo punto, in teoria per decidere se scansionare ricorvisamente le directory o meno, non mi basta questo?
codice:
return (recursive) ? FileVisitResult.CONTINUE : FileVisitResult.TERMINATE;
io ho notato che FileVisitResult.TERMINATE la scansione si ferma solo alla directory iniziale.