docs: public static boolean delete(File dest, final int retryTimes) {
          if (dest == null) {
              return false;
          }
  
          if (false == dest.exists()) {
              return true;
          }
  
          int totalRetry = retryTimes;
          if (retryTimes < 1) {
              totalRetry = 1;
          }
  
          int retry = 0;
          while (retry++ < totalRetry) {
              try {
                  FileUtils.forceDelete(dest);
                  return true;
              } catch (FileNotFoundException ex) {
                  return true;
              } catch (Exception ex) {
                  // 本次等待时间
                  int wait = (int) Math.pow(retry, retry) * timeWait;
                  wait = (wait < timeWait) ? timeWait : wait;
                  if (retry == totalRetry) {
                      try {
                          FileUtils.forceDeleteOnExit(dest);
                          return false;
                      } catch (Exception e) {
                          // ignore
                      }
                  } else {
                      // 记录日志
                      logger.warn(String.format("[%s] delete() - retry %s failed : wait [%s] ms , caused by %s",
                                                dest.getAbsolutePath(), retry, wait, ex.getMessage()));
                      try {
                          Thread.sleep(wait);
                      } catch (InterruptedException e) {
                          // ignore
                      }
                  }
              }
          }
  
          return false;
      }