Crear bucle de borrado de ficheros y directorios JAVA

tengo el siguiente código para borrar ficheros y directorios si llevan más de 2 días sin modificar. El caso es que sólo me borra en 2 capas de directorios y necesito que lo haga desde la ruta dada, sin importar cuántos directorios anidados haya.

public class Borrado {

    public static void main(String() args) {
        
        File directorio = new File("C:" + File.separator + "Users" + File.separator + "PAS" + File.separator + "Desktop" + File.separator + "borrar");
        //Obtener fecha actual
        Date fechaActual = new Date();
        File() ficheros = directorio.listFiles();
        
        for(int i = 0; i < ficheros.length; i++) {
            
            if(ficheros(i).isDirectory()) {
                String ruta = ficheros(i).getAbsolutePath();
                borrarDirectorio(ruta);
            }
            System.out.println(ficheros(i));
            // Obtener fecha de modificación del fichero 
              long ms = ficheros(i).lastModified();
              Date fechaModif = new Date(ms);

              //Diferencia en dias entre las dos fechas
              int dias=(int) ((fechaActual.getTime()-fechaModif.getTime())/86400000);

              // si la fecha de modificacion es anterior a dos días respecto a la fecha actual entonces borramos el fichero 
              if (dias > 2) {
                 ficheros(i).delete();
                 
              }
        }
        
    }
    
    public static void borrarDirectorio(String ruta) {
        File subDirectorio = new File(ruta);
        Date fechaActual = new Date();
        File() subFicheros = subDirectorio.listFiles();
        
        for(int j = 0; j < subFicheros.length; j++) {
            
            System.out.println(subFicheros(j));
            // Obtener fecha de modificación del fichero 
              long ms = subFicheros(j).lastModified();
              Date fechaModif = new Date(ms);

              //Diferencia en dias entre las dos fechas
              int dias=(int) ((fechaActual.getTime()-fechaModif.getTime())/86400000);

              // si la fecha de modificacion es anterior a dos días respecto a la fecha actual entonces borramos el fichero 
              if (dias > 2) {
                  subFicheros(j).delete();
                  subDirectorio.delete();
              }
        }
    }
    
}