code: @Override
      public void run() {
          Collections.sort(files);
          for (int i = files.size() - 1; i >= 0; i--) {
              new File(files.get(i)).delete();
          }
      }
docs: Does the actual work. Note we (a) first sort the files lexicographically
  and then (b) delete them in reverse order. This is to make sure files
  get deleted before their parent directories.